committed by
GitHub
130 changed files with 254075 additions and 0 deletions
@ -0,0 +1 @@ |
|||
.idea/ |
@ -0,0 +1,85 @@ |
|||
x86 中断函数列表 |
|||
|
|||
一开始从 stackoverflow 上找到这个网站: |
|||
[http://www.ctyme.com/intr/int.htm](http://www.ctyme.com/intr/int.htm) |
|||
|
|||
但是没找到下载地址,所以又搜了下找到了这个网站[Public Files on FTP.CS.CMU.EDU](https://www.cs.cmu.edu/~ralf/files.html) |
|||
|
|||
目录和文件(可按文本格式打开)按照字母序,比如 `inter61a/INTERRUP.A` 包含了 `INT 00` 到 `INT 10` |
|||
|
|||
文中会对指令作出较为详细的描述,以 [最近一篇文章中](https://mp.weixin.qq.com/s/hStc-y-sabP-KwJUDUesTw)的 |
|||
[INT 13](https://github.com/sunym1993/flash-linux0.11-talk/blob/547ef4b440ff2ed1be2204e459316a39e9a734fc/%E4%B8%80%E4%BA%9B%E9%9D%9E%E5%BF%85%E8%A6%81%E7%9A%84%E8%B5%84%E6%96%99/linux-0.11/boot/bootsect.s#L71) |
|||
为例, 可以看到给 `AX` 赋值了 `#0x0200+SETUPLEN -> #0x0204` 即 `AH=02` |
|||
|
|||
```assembly |
|||
mov ax,#0x0200+SETUPLEN ; service 2, nr of sectors |
|||
int 0x13 |
|||
|
|||
jnc ok_load_setup ; ok - continue |
|||
``` |
|||
|
|||
对应在 `inter61a/INTERRUP.B` 找到如下描述,可知 `CF` 用来做错误位设置,clear 时标志成功, |
|||
自然猜测接下来的 `jnc` 指令就是为了检查 READ SECTOR(S) INTO MEMORY 这一操作是否成功。 |
|||
|
|||
```shell |
|||
INT 13 - DISK - READ SECTOR(S) INTO MEMORY |
|||
AH = 02h |
|||
AL = number of sectors to read (must be nonzero) |
|||
CH = low eight bits of cylinder number |
|||
CL = sector number 1-63 (bits 0-5) |
|||
high two bits of cylinder (bits 6-7, hard disk only) |
|||
DH = head number |
|||
DL = drive number (bit 7 set for hard disk) |
|||
ES:BX -> data buffer |
|||
Return: CF set on error |
|||
if AH = 11h (corrected ECC error), AL = burst length |
|||
CF clear if successful |
|||
AH = status (see #00234) |
|||
AL = number of sectors transferred (only valid if CF set for some |
|||
BIOSes) |
|||
Notes: errors on a floppy may be due to the motor failing to spin up quickly |
|||
enough; the read should be retried at least three times, resetting |
|||
the disk with AH=00h between attempts |
|||
most BIOSes support "multitrack" reads, where the value in AL |
|||
exceeds the number of sectors remaining on the track, in which |
|||
case any additional sectors are read beginning at sector 1 on |
|||
the following head in the same cylinder; the MSDOS CONFIG.SYS command |
|||
MULTITRACK (or the Novell DOS DEBLOCK=) can be used to force DOS to |
|||
split disk accesses which would wrap across a track boundary into two |
|||
separate calls |
|||
the IBM AT BIOS and many other BIOSes use only the low four bits of |
|||
DH (head number) since the WD-1003 controller which is the standard |
|||
AT controller (and the controller that IDE emulates) only supports |
|||
16 heads |
|||
AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more |
|||
than 1024 cylinders by placing bits 10 and 11 of the cylinder number |
|||
into bits 6 and 7 of DH |
|||
under Windows95, a volume must be locked (see INT 21/AX=440Dh/CX=084Bh) |
|||
in order to perform direct accesses such as INT 13h reads and writes |
|||
all versions of MS-DOS (including MS-DOS 7 [Windows 95]) have a bug |
|||
which prevents booting on hard disks with 256 heads (FFh), so many |
|||
modern BIOSes provide mappings with at most 255 (FEh) heads |
|||
some cache drivers flush their buffers when detecting that DOS is |
|||
bypassed by directly issuing INT 13h from applications. A dummy |
|||
read can be used as one of several methods to force cache |
|||
flushing for unknown caches (e.g. before rebooting). |
|||
BUGS: When reading from floppies, some AMI BIOSes (around 1990-1991) trash |
|||
the byte following the data buffer, if it is not arranged to an even |
|||
memory boundary. A workaround is to either make the buffer word |
|||
aligned (which may also help to speed up things), or to add a dummy |
|||
byte after the buffer. |
|||
MS-DOS may leave interrupts disabled on return from this function. |
|||
Apparently some BIOSes or intercepting resident software have bugs |
|||
that may destroy DX on return or not properly set the Carry flag. |
|||
At least some Microsoft software frames calls to this function with |
|||
PUSH DX, STC, INT 13h, STI, POP DX. |
|||
on the original IBM AT BIOS (1984/01/10) this function does not disable |
|||
interrupts for harddisks (DL >= 80h). On these machines the MS-DOS/ |
|||
PC DOS IO.SYS/IBMBIO.COM installs a special filter to bypass the |
|||
buggy code in the ROM (see CALL F000h:211Eh) |
|||
SeeAlso: AH=03h,AH=0Ah,AH=06h"V10DISK.SYS",AH=21h"PS/1",AH=42h"IBM" |
|||
SeeAlso: INT 21/AX=440Dh/CX=084Bh,INT 4D/AH=02h |
|||
|
|||
# ··· |
|||
|
|||
``` |
File diff suppressed because it is too large
@ -0,0 +1,7 @@ |
|||
DESQview/QEMM Interrupt List, Release 43 |
|||
A Comprehensive listing of interrupt |
|||
calls related to TopView, DESQview, |
|||
QEMM, and other Quarterdeck products, |
|||
both documented and undocumented. |
|||
Contains 110 entries and more than |
|||
200 tables. |
File diff suppressed because it is too large
@ -0,0 +1,415 @@ |
|||
Public Domain/Freeware/Shareware by Ralf Brown: |
|||
|
|||
The MSDOS Interrupt List |
|||
A comprehensive listing of over 6550 functions available through |
|||
interrupt calls on IBM PCs and compatibles. Includes both |
|||
documented and undocumented functions. |
|||
Current version: INTER43A (release 43, 11/6/94) |
|||
INTER43B |
|||
INTER43C |
|||
INTER43D (conversion and utility programs) |
|||
|
|||
DVINT |
|||
An extract of the MSDOS Interrupt List containing the DESQview |
|||
and QEMM API calls. Updated whenever there have been significant |
|||
additions to the DESQview/QEMM calls in the Interrupt List. |
|||
Current version: DVINT43 (11/6/94) |
|||
|
|||
RBcomm |
|||
A DESQview-aware communications program which sports seamless DSZ, |
|||
PCZ, or PUMA/MPt integration for file transfers; ANSI/VT102, VT52, |
|||
and AVATAR emulation (including 132 columns); speeds to 115200 bps; |
|||
a powerful macro language; dialing directory; ANSI music; and |
|||
more. Runs in 65K with DSZ, 46K without. While it works under |
|||
plain DOS, additional features are available under DESQview. |
|||
Current version: RBCOM341 (v3.41 1/10/93) |
|||
|
|||
SPAWNO |
|||
A replacement for the Turbo C and Microsoft C spawn..() functions |
|||
which swaps the current program to disk, EMS, XMS, or raw extended |
|||
memory while the spawned program executes, leaving less than 300 |
|||
bytes in memory. Also includes a variant for Turbo Pascal v4.0 or |
|||
higher. |
|||
Current version: SPWNO413 (v4.13 12/12/92) |
|||
Price: libraries free, full source code $100. |
|||
|
|||
RBkeyswap |
|||
Exchange left control and CapsLock keys, as well as Esc and `/~. |
|||
Loads itself high, using just 64 bytes; needs only 128 bytes low |
|||
if no high memory is available. |
|||
Current version: RBKEYSWP (v2.0 6/22/91; v3.0 included in AMISLIB) |
|||
|
|||
AMISLIB |
|||
Public Domain library (with full source code and five sample TSRs) |
|||
for creating self-highloading TSRs which may be unloaded in any |
|||
order. Up to 256 TSRs created with AMISLIB may be installed |
|||
simultaneously, and TSRs can be as small as 128 bytes resident, |
|||
1.4K on disk. One of the sample TSRs is a popup which accesses |
|||
DOS. |
|||
Current version: AMISL091 (v0.91 10/16/92) |
|||
|
|||
DV-GLUE |
|||
DESQview API bindings for Turbo C. |
|||
Current version: DVGLUE10 (source) |
|||
DVGLUL10 (compiled) |
|||
DVGLU101 (update) (v1.01 8/12/88) |
|||
Note: a very early beta of the next release is available on |
|||
FTP.CS.CMU.EDU and SoundingBoard (1/3/93) |
|||
|
|||
DVKPOLL |
|||
"Poor man's version" of TAME. Makes programs give up CPU time when |
|||
they are in an idle loop polling the keyboard for keystrokes. |
|||
Current version: DVKPOLL2 (6/18/88) |
|||
Note: This program has been superseded by DVPTAME. |
|||
|
|||
DVPTAME |
|||
"Not-so-poor man's version" of TAME. Tells DESQview to give the |
|||
remainder of a time slice away if the program is in an idle loop |
|||
polling the keyboard for keystrokes. Uses 0 bytes of memory. |
|||
Current version: DVPTAME (6/4/91) |
|||
|
|||
DVdevload |
|||
Load device drivers only in those DESQview windows which need the |
|||
services of the driver, reducing the pre-DESQview overhead and thus |
|||
permitting larger DESQview windows. |
|||
Current version: DVDEVL12 (v1.20 1/3/93) |
|||
Note: as of DESQview 2.40, Quarterdeck's DEVICE.COM is able to install |
|||
drivers into the device chain in the same manner as DVdevload; |
|||
however, DEVICE uses eight times as much memory as DVdevload and |
|||
has a serious interaction with 4DOS/NDOS that can lead to system |
|||
crashes. |
|||
|
|||
RBspeed |
|||
Switch the CPU speed of an Intel Pentium motherboard using the |
|||
"Neptune" chipset. Public Domain. |
|||
Current version: RBSPEED1 (v1.00 9/8/94) |
|||
|
|||
SPTURBO |
|||
An integrated environment for Borland's Sprint word processor and |
|||
Turbo C, Turbo Pascal, Turbo Assembler, Turbo Debugger, and CDECL. |
|||
Knows which compiler to invoke based on the file's extension, and |
|||
can run MAKE for multi-file projects. |
|||
Current version: SPTURBO (v2.3 Aug 1,1989) |
|||
Note: Do not expect any updates, as I no longer use Sprint as a |
|||
programming environment. |
|||
|
|||
PURGEMSG |
|||
Delete or copy *.MSG files such that you only see those messages |
|||
from a Fidonet echomail area which interest you. |
|||
Current version: PURGEMSG (v1.00, 8/4/91) |
|||
|
|||
Note: beginning 1/1/91, all packages are distributed in PKZIP archives with |
|||
authenticity verification (v1.1 before 4/1/93, v2.0 after). Please |
|||
redistribute only the original archives to preserve the authenticity |
|||
information. If you receive an archive dated after 1/1/91 which fails |
|||
the authenticity check, you should treat it with caution. If you |
|||
receive an archive which passes the PKZIP check but displays an |
|||
authenticity code other than NWS235, then the archive has been |
|||
deliberately tampered with and should be deleted IMMEDIATELY. |
|||
|
|||
|
|||
------------- |
|||
Availability: |
|||
------------- |
|||
|
|||
On the Internet, by standard anonymous FTP from FTP.CS.CMU.EDU [128.2.206.173]. |
|||
Change directly to directory /afs/cs.cmu.edu/user/ralf/pub with a |
|||
single command (directories above this are not accessible via |
|||
anonymous FTP). [DV-GLUE is not available here] |
|||
Don't forget to set "binary" mode! If you are refused access to |
|||
the directory, try again later; a fileserver may have been down. |
|||
|
|||
If connected to AFS, you can simply perform standard Unix/VMS/whatever |
|||
directory listing and file copies from the above directory. |
|||
|
|||
On FIDOnet, from Soundingboard BBS 1:129/26 1-412-621-4604 28.8k HST, file req. |
|||
My programs are kept in file area 8 for those wishing to download |
|||
manually. |
|||
|
|||
Alternate Distribution Points (new versions will be available here |
|||
usually within 24 hours of release): |
|||
Internet: SimTel Software Repository mirrors in directories /pub/msdos/X. |
|||
X is 'info' for the Interrupt List, 'modem' for RBcomm, 'c' for |
|||
SPAWNO, 'asmutl' for AMISLIB, 'desqview' for DV-GLUE/DVKPOLL/DVPTAME, |
|||
and 'sprint' for SPTURBO. Note that you must use mode "binary" to |
|||
successfully FTP the files. The SimTel mirror sites include |
|||
oak.oakland.edu [141.210.10.117], wuarchive.wustl.edu [128.252.135.4], |
|||
ftp.uu.net [137.39.1.9], nic.funet.fi [128.214.6.100], |
|||
src.doc.ic.ac.uk [146.169.3.7] and archie.au [139.130.4.6]. |
|||
FIDO: SyncPoint BBS 1:261/1008 1-410-529-2584 File Requests. |
|||
|
|||
Bitnet users may also retrieve items on SimTel via the following automated |
|||
mail servers: |
|||
(in the US) LISTSERV@RPITSVM (alias VM.ITS.RPI.EDU) |
|||
LISTSERV@NDSUVM1 (alias VM1.NODAK.EDU) |
|||
(in Europe) TRICKLE@AWIWUW11 (Austria) |
|||
TRICKLE@BANUFS11 (Belgium) |
|||
TRICKLE@DKTC11 (Denmark) |
|||
TRICKLE@FRMOP11 (France) |
|||
TRICKLE@DEARN (Germany) |
|||
TRICKLE@IMIPOLI (Italy) |
|||
TRICKLE@HEARN (Netherlands) |
|||
TRICKLE@EB0UB011 (Spain) |
|||
TRICKLE@SEARN (Sweden) |
|||
TRICKLE@TREARN (Turkey) |
|||
(elsewhere) TRICKLE@UNALCOL (Colombia) |
|||
TRICKLE@TAUNIVM (Israel) |
|||
Send a mail message containing the line |
|||
/HELP |
|||
in the body for instructions. |
|||
|
|||
DV-GLUE, DVKPOLL, DVINT, DVPTAME, DVdevload, and RBcomm are also available on |
|||
Fidonet BBSs belonging to DVNet (listed below). |
|||
|
|||
The Interrupt List and SPAWNO are also available on Fidonet BBSs belonging |
|||
to the Programmer's Distribution Network. Selected PDN member boards as of |
|||
January 1, 1993: |
|||
|
|||
Tustin, CA 1:103/208 Homer 14400 HST/V32bis |
|||
La Palma, CA 1:103/234 The General Store 2400 |
|||
Sunnyvale, CA 1:143/226 The Rabbit's Foot 9600 HST |
|||
San Diego, CA 1:202/302 Gandalf's 9600 HST |
|||
Marysville, CA 1:203/988 Amber Shadow 9600 HST |
|||
Honolulu, HI 1:345/2 Coconuts BBS 9600 HST |
|||
Enon, OH 1:110/270 The Blue Byte 9600 HST/V32 |
|||
Palatine, IL 1:115/439 The Midrange System 14400 HST/V32bis |
|||
Grove City, OH 1:226/5300 MARDUK IV 14400 HST/V32bis |
|||
Canton, IL 1:232/26 The Proving Grounds 14400 HST/V32bis |
|||
Ottawa, ON 1:163/211 Ned's Opus 14400 HST/V32bis |
|||
Dumont, NJ 1:107/557 County Jail ][ 14400 HST/V32bis |
|||
Glen Falls, NY 1:267/54 The Final Frontier 9600 HST |
|||
Albany, NY 1:267/169 MCS *USA* 14400 HST/V32bis |
|||
Middletown, NY (HQ) 1:272/38 PRISM BBS 14400 HST/V32bis |
|||
New York, NY 1:278/707 The Laboratory BBS 14400 HST/V32bis |
|||
Greenville, PA 1:2601/513 Thiel College 2400 |
|||
Mercer, PA 1:2601/531 Last Outpost 14400 HST/V32bis |
|||
Morris Plains, NJ 1:2606/583 Atrium Way 14400 HST/V32bis |
|||
Kansas City, MO 1:280/8 The Unicorn EIE 9600 HST/V32 |
|||
Boulder, CO 1:104/415 World Peace BBS 14400 H96/V32bis |
|||
Colorado Springs, CO 1:128/60 Programmer's Playhous 14400 HST/V32bis |
|||
Merrimack, NH 1:132/130 Outer Limits 9600 HST/V32 |
|||
Hudson, NH 1:132/159 The Toy Room BBS 9600 HST |
|||
Manchester, NH 1:132/122 Echo Beach 9600 HST |
|||
Pomfret, CT 1:320/101 Brain Damaged 14400 HST/V32bis |
|||
Coventry, RI 1:323/105 Prometheus System 14400 HST/V32bis |
|||
Providence, RI 1:323/120 ChowdaNet BBS 14400 HST/V32bis |
|||
Lawrence, MA 1:324/121 The Business Card 14400 HST/V32bis |
|||
Plainfield, CT 1:327/452 The Plainfield News 14400 HST/V32bis |
|||
Wenatchee, WA 1:344/61 Apple Capitol BBS 14400 HST/V32bis |
|||
Kindersley, Sask 1:140/501 The Big Electric Cat 14400 HST/V32bis |
|||
Nanaimo, BC 1:351/201 MegaByte BBS 14400 HST/V32bis |
|||
Crystal River, FL 1:365/12 Gulf Coast BBS 14400 HST/V32bis |
|||
Miami, FL 1:135/105 DevPalMiami 14400 HST/V32bis |
|||
Chattanooga, TN 1:362/101 STARFIRE COMMAND 14400 HST/V32bis |
|||
Caparra Heights, PR 1:367/15 The Island Sun 14400 HST/V32bis |
|||
Watkinsville, GA 1:370/510 Route 66 BBS 14400 HST/V32bis |
|||
Albany, GA 1:3617/3 Combat Override 9600 HST |
|||
Charlotte, NC 1:379/4 Programmer's Assistant 14400 HST/V32bis |
|||
Mobile, AL 1:3625/454 On-Line Aft LateNight 14400 HST |
|||
Corpus Christi, TX 1:160/140 Gethsemane 14400 HST/V32bis |
|||
San Antonio, TX 1:387/255 NUL 14400 HST/V32bis |
|||
Tulsa, OK 1:170/403 Software America Inc 14400 HST/V32bis |
|||
Walnut Ridge, AR 1:389/10 Phil's BBS 14400 HST/V32bis |
|||
Folsom, LA 1:390/3 Northlake Data Xchg 14400 HST/V32bis |
|||
Slidell, LA 1:390/11 The City O' Jazz 9600 HST/V32 |
|||
Muskogee, OK 1:3813/309 Brushy Mountain BBS 9600 HST |
|||
---Europe--- |
|||
Emmen, NL 2:282/1 Garfield's Home 14400 HST/V32bis |
|||
Enschede, NL 2:283/100 HAMLOT Services Brd 14400 HST/V32bis |
|||
Maaseik, Belgium 2:292/100 FD-Help 14400 HST/V32bis |
|||
Bologna, Italy 2:332/403 Active Line I 14400 HST/V32bis |
|||
Pisa, Italy 2:332/602 WolfNet Point's Line V32/PEP |
|||
Pisa, Italy 2:332/612 WolfNet Line #1 9600 HST/V32 |
|||
|
|||
------------------------------------------------------------------------ |
|||
|
|||
DVNet nodes as of August 1994: |
|||
|
|||
DVNet node listing as of AUG 03, 1994 |
|||
|
|||
USA |
|||
------------------------------ --------- ------------ -------- |
|||
AK 65'North, Fairbanks 1:355/38 907-452-1460 VFCV32b |
|||
AR Phil's BBS, Walnut Ridge 1:389/10 501-886-1701 HSTV32b |
|||
AR CrossFire, N Little Rock 1:3821/2 501-791-2993 H16V32b |
|||
AR MinnTelligence, Little Rock 1:3821/6 501-664-2237 V32b |
|||
AZ Analog Gate, Sierra Vista 1:309/9 602-458-0451 HSTV32 |
|||
CA Carl's Corner, San Jose 1:10/1 408-248-9704 HSTV32 |
|||
CA Central Computer Banks, LA 1:102/851 213-256-0871 HSTV32b |
|||
CA Gandalf's, El Cajon 1:202/302 619-466-9505 HSTV32 |
|||
CA Stingray!, Clovis 1:205/12 209-298-9461 HST |
|||
CA Bertha Board, Manteca 1:208/1 209-823-0093 HST |
|||
CO Hole in the Wall, Parker 1:104/651 303-841-5515 HSTV32b |
|||
CO Prgrmmrs Playhouse, Colo Springs 1:128/60 719-380-8813 HST |
|||
CT Treasure Island, Danbury 1:141/730 203-791-8532 HSTV32b |
|||
CT Ascii Neighborhood, W Haven 1:141/333 203-934-9852 HST |
|||
CT Death's Domain, Enfield 1:142/629 203-749-6103 HSTV32 |
|||
CT Plainfield News, Plainfield 1:327/452 203-564-8579 HST |
|||
DE KnowledgeBase BBS, Wilmington 1:150/360 302-633-4797 HSTV32 |
|||
FL Stan's Shack, Jacksonville 1:112/5 904-768-3854 HSTV32 |
|||
FL Silicon Dreams, Bradenton 1:137/200 813-746-7788 V32 |
|||
FL Jos' Lounge, Naples 1:3630/40 813-592-1535 HSTV32 |
|||
FL Other World, Tallahassee 1:3605/56 904-668-1092 HST |
|||
FL The Dog House, Tamarac 1:369/54 305-720-3637 HSTV32 |
|||
FL archonRAINBOW, Ft Myers 1:371/13 813-939-3394 HST |
|||
FL Strat's Asylum, Cape Canaveral 1:374/12 407-799-0390 HSTV32b |
|||
FL E.I.L.C. BBS, Palm Bay 1:374/60 407-676-2998 HSTV32b |
|||
FL Southern Systems, Tampa 1:377/9 813-977-7065 HSTV32 |
|||
GA Galaxy Info System, Atlanta 1:133/411 404-671-1024 V32 |
|||
GA Code Plus, Warner Robins 1:3611/15 912-953-1053 HSTV32b |
|||
GA Combat Override, Albany 1:3617/3 912-883-1421 HST |
|||
HI CocoNuts BBS Service, Honolulu 1:345/2 808-845-7054 HSTV32 |
|||
IA Icarus, Iowa City 1:283/657 319-337-9878 HSTV32 |
|||
IL Midrange System, Mt Prospect 1:115/439 708-439-9679 HSTV32 |
|||
IL Buzzard's Roost, Peoria 1:232/17 309-691-5469 HSTV32b |
|||
IN Someplace BBS, Indianapolis 1:231/120 317-353-9981 HST |
|||
IN Joker's Wild, Indianapolis 1:231/510 317-843-1371 HSTV32 |
|||
IN The Jokerman BBS, Bluffton 1:236/12 219-824-5628 ZYXV32b |
|||
LA My Secret Garden, Shreveport 1:380/5 318-865-4503 H16V32b |
|||
LA *Silver Streak RBBS, New Orleans 1:396/15 504-888-6515 HSTV32b |
|||
MA Rainbow's Edge, Westwood 1:101/1 617-551-0495 HSTV32 |
|||
MA Pioneer Valley PCUG1, Amherst 1:321/109 413-256-1037 HST |
|||
MA Denis's Opus, Ayer 1:322/2 508-772-6373 HSTV32 |
|||
MA Waystar BBS, Marlborough 1:322/14 508-481-7147 HST |
|||
MA The Business Card, Lawrence 1:324/121 508-682-5329 HSTV32b |
|||
MD Addict's Attic, Germantown 1:109/423 301-428-8998 V32 |
|||
MD AviTechnic ,Lutherville 1:261/662 301-252-0717 HSTV32 |
|||
MI The Red Eye BBS, Westland 1:2410/213 313-728-0213 V32b |
|||
MI Fast Eddies BBS, Monroe 1:2380/101 313-243-0944 ZYXV32b |
|||
MN Riverside BBS, Elk River 1:282/1008 612-241-9963 V32 |
|||
MO Cheswick's, St Louis 1:100/375 314-965-5296 HSTV32 |
|||
MO Summit Forum, Holt's Summit 1:289/13 314-896-5393 HSTV32 |
|||
MO Cmos, St Joseph 1:294/1 816-233-1357 HSTV32b |
|||
NC Crossed Wires, Dudley 1:3660/809 919-580-7194 H16V32b |
|||
NC Psychotronic BBS, Durham 1:3641/1 919-286-7738 HSTV32 |
|||
NC Programmer's Asstnt, Charlotte 1:379/4 704-544-0010 HST |
|||
NH Our BBS Yours and Mine, Derry 1:132/193 603-432-5287 HSTV32b |
|||
NJ University BBS, Eatontown 1:107/411 908-544-8193 HSTV32b |
|||
NJ Maple Shade Opus, Maple Shade 1:266/12 609-482-8604 HSTV32b |
|||
NJ APFL- The BBS, Tenafly 1:2604/306 201-567-6994 HSTV32b |
|||
NJ Fleet Street, Somerville 1:2605/625 908-722-8962 V32 |
|||
NJ Atrium Way, Morris Plains 1:2606/583 201-984-5555 HSTV32 |
|||
NM Construction Net #6, Los Alamos 1:15/20 505-662-0659 HST |
|||
NV $in City Bit Pit, Las Vegas 1:209/711 702-647-4427 HSTV32 |
|||
NV Danger Zone, Reno 1:213/720 702-828-4907 HSTV32 |
|||
NY Rivendell * TAP/1, Syracuse 1:260/1 716-646-0227 HSTV32 |
|||
OH The Mountain Top, Cincinnati 1:108/107 513-921-5568 HST |
|||
OH Blue Byte BBS, Enon 1:110/270 513-864-1143 HST |
|||
OH Nerd's Nook, Rocky River 1:157/3 216-356-1882 HSTV32b |
|||
OH NHampton Data, Cuyahoga Falls 1:157/533 216-928-8565 HSTV32 |
|||
OH Computer Room, Pickerington 1:226/110 614-861-8377 HSTV32 |
|||
OH Steel Valley BBS, Girard 1:237/500 216-545-2318 HSTV32 |
|||
OH The Outer Limits, Chillicothe 1:2220/10 614-772-5520 H16VFC |
|||
OH South of the Bauder, Chillicothe 1:2220/70 614-773-2423 H16V32b |
|||
OK Ascension, Norman 1:147/46 405-360-4261 HST |
|||
OR Bink of an Aye, Portland 1:105/42 503-297-9043 PEPV32 |
|||
OR Atarian BBS, Portland 1:105/10 503-245-9730 HSTV32 |
|||
OR Busker's Boneyard, Portland 1:105/14 503-771-4773 PEP |
|||
OR Dimension 7, Eugene 1:152/7 503-461-2219 HST |
|||
PA The Other BBS, Harrisburg 1:270/101 717-657-2223 HST |
|||
PA Walsh Microsys, Philadelphia 1:273/917 215-725-9134 HST |
|||
PA Optical Illusion, Allentown 1:273/603 215-797-7409 HSTV32 |
|||
PA U.S.S. Intrepid, Spring House 1:273/703 215-641-0270 HST |
|||
PA Programmer's Haven, Allentown 1:2607/103 610-797-9378 V32BVFC |
|||
PA Cheyenne BBS, Upper Darby 1:2614/409 215-544-0819 HSTV32b |
|||
PR Island Sun, Caparra Heights 1:367/15 809-783-9542 HST |
|||
SC Dreadnaught BBS, Columbia 1:376/50 803-731-3884 V32 |
|||
SC Special Projects, Beech Island 1:360/13 803-827-1725 HSTV32b |
|||
SC Carolina Collections, Sumter 1:3647/1 803-499-4316 HSTV32b |
|||
TN EET BBS, Nashville 1:116/24 615-353-3476 HSTV32 |
|||
TX Conch Opus, Houston 1:106/357 713-667-7213 HSTPCP |
|||
TX Inns of Court, Dallas 1:124/6101 214-458-2620 HSTV32 |
|||
TX Spare Parts, Bedford 1:130/38 817-540-3527 HST |
|||
TX Southern Crossroads, Dallas 1:124/4115 817-481-8984 ZYXV32b |
|||
TX The Gas Company, Arlington 8:930/201 817-265-8938 HST |
|||
TX Wireline, Corpus Christi 1:160/40 512-241-1120 HST |
|||
TX Middle Earth, San Antonio 1:382/19 512-835-4848 HST |
|||
TX Hair of the Dog, Austin 1:382/44 512-219-9446 V32b |
|||
TX Last Chance TBBS, San Antonio 1:387/800 512-822-7519 HST |
|||
TX TSTI INFO NET, Waco 1:388/1000 817-799-1570 HST |
|||
TX Direct Connect!, Victoria 1:3802/213 512-573-0245 HSTV32b |
|||
VA Diving Board, Richmond 1:264/180 804-965-9082 HST |
|||
VA Host D, Newport News 1:271/295 804-887-0577 V32b |
|||
VA Host D, Newport News 1:271/296 804-887-2490 ZYXV32b |
|||
VA Host D, Newport News 1:271/294 804-887-8235 HST |
|||
VA ThunderBolt BBS, Fredericksburg 1:274/13 703-373-9289 HST |
|||
VA Terrapin Station, Norfolk 1:275/13 804-489-7450 HSTV32b |
|||
VT The Ozone Layer, Williston 1:325/118 802-862-5058 HSTV32b |
|||
WA Pacifier BBS, Vancouver 1:105/103 206-253-9770 HSTV32 |
|||
WA Seattle/Everett Hub, Seattle 1:343/300 206-244-8860 HST |
|||
WA Sno-Valley SW Exchange, N Bend 1:343/108 206-888-9249 HSTV32 |
|||
WA Sleepy Hollow BBS, Wenatchee 1:344/78 509-664-4021 V32b |
|||
WA Gecko Control, Fairchild AFB 1:346/26 509-244-0944 V32 |
|||
WA SunDial BBS, Pasco 1:347/7 509-545-1789 HST |
|||
WI County Line BBS, W Allis 1:154/100 414-476-8468 HSTV32b |
|||
WI The Inn, Chippewa Falls 1:2300/10 715-723-3552 HSTV32b |
|||
WY Oregon Trail XRoads, Casper 1:303/5 307-472-3615 H96V32 |
|||
WY Black Diamond, Greybull 1:15/24 307-682-6944 H14V32b |
|||
|
|||
CANADA |
|||
------------------------------ --------- ------------ ---------- |
|||
AB Logical Solutions, Calgary 1:134/10 403-299-9917 HST |
|||
AB Information Corner, Edmonton 1:342/20 403-483-1896 HST |
|||
BC Kiwi-Land, Surrey 1:153/909 604-536-0831 H16V32b |
|||
MB Polar Bear Heaven Winnipeg 1:348/405 204-837-9704 HST |
|||
NB Atlantic Access, St John W 1:255/2 506-635-1964 HST |
|||
ON AFI Comm, Nepean 1:163/115 613-829-0282 HST |
|||
ON Ned's Opus HST Ottawa 1:163/211 613-523-8965 HST |
|||
ON Alpha City BBS, Oshawa 1:229/2 416-579-6302 H14V32b |
|||
ON The Aardvark, Burlington 1:259/110 905-332-4127 H16V32b |
|||
PQ Arcane BBS, Laval 1:167/116 514-687-9586 HST |
|||
SK The DataForce, Regina 1:140/72 306-585-1958 HST |
|||
|
|||
ZONE 2 |
|||
--------------------------------- --------- -------------- ------- |
|||
AU ZAP #3/Cuckoo's Nest 2:310/3 43-1-454330 HSTV32b |
|||
|
|||
BE The Optimist, Antwerpen 2:292/856 32-3-2811450 ZYXV32b |
|||
|
|||
DE The 49er's, Wuppertal 2:243/7801 49-202-305803 HST |
|||
DE Median, Berlin 2:2410/305 49-30-735148 H16V32Terbo |
|||
DE BoersenBox, Friedrichshafen 2:246/8501 49-7541-53191 HSTV32b |
|||
|
|||
FR The Lys Valley, Comines 2:322/2 33-20631262 HSTV32Terbo |
|||
|
|||
GB Enigma Variations, Worcester 2:2/544 44-905-795002 HST |
|||
GB GABBS, Gosport Hants 2:251/16 44-705-524805 HSTV32b |
|||
GB Komputer Knowledge, Cheddington 2:252/7 44-296-668148 HSTV32 |
|||
GB Aureal, Market Harborough 2:254/153 44-858-466594 HST |
|||
GB Trinity I, Exeter 2:255/112 44-392-495899 HSTV32b |
|||
GB Dog & Duck, Hull 2:2503/3 44-482-444650 HSTV32 |
|||
GB Power BBS, Wrexham Clwyd 2:442/78 44-978-824278 HSTV32b |
|||
GB Piston Popper's, Hastings 2:441/80 44-424-853361 HSTV32 |
|||
|
|||
IL Small BBS, Jerusalem 2:402/777 V32b |
|||
|
|||
IT Venus, Pavia PV 2:331/318 39-382-575369 V32bZYX |
|||
IT Genova 2000, Genova 2:332/201 39-10-3770080 V32b |
|||
IT SUBALPINA's_Hub, Torino 2:334/300 39-11-6624400 HSTV32 |
|||
|
|||
NL TouchDown, Hoofddorp 2:280/414 31-2503-52030 H14V32b |
|||
NL Interface HQ, Den Haag 2:281/506 31-70-3360698 V32b |
|||
NL Kiss Software, Almelo 2:283/314 31-5490-13932 ZYXV32b |
|||
NL Programmers Support, Helmond 2:2802/108 31-4920-13558 H14V32b |
|||
NL Byteline! Systems, Hardinxveld 2:285/101 31-1846-17611 H14V32b |
|||
NL DOSSBoss Twente, Delden 2:500/149 31-5407-64701 ZYXV32b |
|||
NL The HEKOM Board 2:500/223 31-3483-4072 V32b |
|||
NL MotherBoard 2:512/197 31-50-187669 H14V32b |
|||
|
|||
SE Capital City BBS,Haninge 2:201/111 46-8-53043088 H14V32 |
|||
SE Fenix, Viksj” 2:201/298 46-8-58011629 V32b |
|||
|
|||
ZONE 3 |
|||
------------------------------ --------- ------------- ------- |
|||
AU Marwick's MadHouse, Brisbane 3:640/820 61-7-870-2972 PEPV32 |
|||
AU Sentry, Lane Cove NSW 3:711/401 61-2-428-4687 PEPV32 |
|||
AU Sentry's Shadow, Lane Cove NSW 3:711/501 61-2-418-6682 V32bTerbo |
|||
AU Revelstone BBS, Doveton Vic 3:632/348 61-3-741-2353 PEP |
|||
AU Southern Mail CBCS Croyton Vic 3:632/386 61-3-725-1621 PEP |
|||
AU COMPUlink, Perth WA 3:690/628 61-9-451-7288 2400 |
|||
AU Phone Box,Inglewood SA 3:800/854 61-8-3805505 V32 |
|||
AU OZ-Board, Townsville Qsnlnd 3:640/715 61-77-21-3592 PEPV32RE |
|||
|
|||
ZONE 6 |
|||
------------------------------ --------- ------------- ------- |
|||
HK TAIC Maximus Kowloon 6:700/1 85-2-789-1267 PEPV32 |
@ -0,0 +1,31 @@ |
|||
Frequently-Asked Questions Release 61 Last Edit 16jul00 |
|||
Copyright 2000 Ralf Brown |
|||
|
|||
Have a frequently-asked question about interrupts or ports and its answer? |
|||
Mail them to me for inclusion in this file (with credit to you). |
|||
ralf@pobox.com |
|||
|
|||
--------------------------------------------- |
|||
Index: |
|||
1. Is there an interrupt to get the BIOS serial number as shown on the |
|||
power-up screen? |
|||
|
|||
|
|||
--------------------------------------------- |
|||
Q1: Is there an interrupt to get the BIOS serial number as shown on the |
|||
power-up screen? |
|||
A: (Ralf Brown) |
|||
There is no general way to get the serial number. In most cases, you |
|||
need to know the proper offset in the BIOS image for that particular |
|||
make, model, and revision of the BIOS (and that offset may not even |
|||
be present in the real-mode image loaded into shadow RAM!). |
|||
|
|||
Further, with a flashable BIOS, it is quite likely that every single |
|||
machine that has been updated with a downloadable upgrade from the |
|||
Web will have identical serial numbers, assuming they weren't already |
|||
identical as shipped from the factory with the original BIOS version. |
|||
Because of this, the BIOS serial number is essentially useless for |
|||
any identification purposes. |
|||
|
|||
--------------------------------------------- |
|||
End of File |
@ -0,0 +1,10 @@ |
|||
x86/MS-DOS Interrupt List, Release 61 |
|||
A Comprehensive listing of interrupt |
|||
calls, both documented and undocumented, |
|||
plus ports/memory/CMOS/etc. Over 9600 |
|||
entries (plus 5400 tables) in INTER61A |
|||
to INTER61D, utility programs and |
|||
viewers in INTER61E, and hypertext |
|||
conversion progs & WinHelp utilities in |
|||
INTER60F. Over 8 million bytes of |
|||
text! Released 2000/07/16. |
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,30 @@ |
|||
VOLUNTEERS NEEDED |
|||
----------------- |
|||
|
|||
15jul00: |
|||
|
|||
I haven't been managing any transcriptions for a while due to lack of |
|||
time, but I hope to restart the process this fall. Once I'm ready to |
|||
go, I'll contact everyone who has volunteered in the past. |
|||
|
|||
|
|||
30aug98: |
|||
|
|||
If you've always wanted to show your appreciation of the interrupt |
|||
list, but never had anything to contribute before, here's your chance! |
|||
I continue to have a need for volunteers to transcribe and condense the |
|||
information in various on-line documents into a suitable form for |
|||
inclusion in the list. A good job of transcription can save me 90% of |
|||
the effort it would otherwise take me, which means that I can get far |
|||
more information into the list -- and that helps everyone. |
|||
|
|||
If you're interested in transcribing one or more documents, send me |
|||
mail and I'll provide you with the URL and a brief style guide. Let me |
|||
know whether you're willing to work on a large document or only a |
|||
small(ish) one. As an added incentive, those who contribute at least |
|||
120K of additions (roughly equivalent to the info from four motherboard |
|||
chipsets; figure around 50 hours of effort) get a free autographed |
|||
copy of one of my books. |
|||
|
|||
|
|||
|
@ -0,0 +1,262 @@ |
|||
[Provided by Bent Lynggaard <lynggaard@risoe.dk>. Last Edit 6/5/94] |
|||
This list is a brief description of each of the 256 interrupts. Each |
|||
description begins with "INT nn " where "nn" is a two digit hexadecimal |
|||
number 00 - FF. For automatic processing, do not rely on the order being |
|||
consecutive. |
|||
--------!---TITLES--------------------------- |
|||
INT 00 - CPU-generated - DIVIDE ERROR |
|||
INT 01 - CPU-generated - SINGLE STEP; (80386+) - DEBUGGING EXCEPTIONS |
|||
INT 02 - external hardware - NON-MASKABLE INTERRUPT |
|||
INT 03 - CPU-generated - BREAKPOINT |
|||
INT 04 - CPU-generated - INTO DETECTED OVERFLOW |
|||
INT 05 - PRINT SCREEN; CPU-generated (80186+) - BOUND RANGE EXCEEDED |
|||
INT 06 - CPU-generated (80286+) - INVALID OPCODE |
|||
INT 07 - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE |
|||
INT 08 - IRQ0 - SYSTEM TIMER; CPU-generated (80286+) |
|||
INT 09 - IRQ1 - KEYBOARD DATA READY; CPU-generated (80286,80386) |
|||
INT 0A - IRQ2 - LPT2/EGA,VGA/IRQ9; CPU-generated (80286+) |
|||
INT 0B - IRQ3 - SERIAL COMMUNICATIONS (COM2); CPU-generated (80286+) |
|||
INT 0C - IRQ4 - SERIAL COMMUNICATIONS (COM1); CPU-generated (80286+) |
|||
INT 0D - IRQ5 - FIXED DISK/LPT2/reserved; CPU-generated (80286+) |
|||
INT 0E - IRQ6 - DISKETTE CONTROLLER; CPU-generated (80386+) |
|||
INT 0F - IRQ7 - PARALLEL PRINTER |
|||
INT 10 - VIDEO; CPU-generated (80286+) |
|||
INT 11 - BIOS - GET EQUIPMENT LIST; CPU-generated (80486+) |
|||
INT 12 - BIOS - GET MEMORY SIZE |
|||
INT 13 - DISK |
|||
INT 14 - SERIAL |
|||
INT 15 - CASSETTE |
|||
INT 16 - KEYBOARD |
|||
INT 17 - PRINTER |
|||
INT 18 - DISKLESS BOOT HOOK (START CASSETTE BASIC) |
|||
INT 19 - SYSTEM - BOOTSTRAP LOADER |
|||
INT 1A - TIME |
|||
INT 1B - KEYBOARD - CONTROL-BREAK HANDLER |
|||
INT 1C - TIME - SYSTEM TIMER TICK |
|||
INT 1D - SYSTEM DATA - VIDEO PARAMETER TABLES |
|||
INT 1E - SYSTEM DATA - DISKETTE PARAMETERS |
|||
INT 1F - SYSTEM DATA - 8x8 GRAPHICS FONT |
|||
INT 20 - DOS 1+ - TERMINATE PROGRAM |
|||
INT 21 - DOS 1+ - Function Calls |
|||
INT 22 - DOS 1+ - PROGRAM TERMINATION ADDRESS |
|||
INT 23 - DOS 1+ - CONTROL-C/CONTROL-BREAK HANDLER |
|||
INT 24 - DOS 1+ - CRITICAL ERROR HANDLER |
|||
INT 25 - DOS 1+ - ABSOLUTE DISK READ |
|||
INT 26 - DOS 1+ - ABSOLUTE DISK WRITE |
|||
INT 27 - DOS 1+ - TERMINATE AND STAY RESIDENT |
|||
INT 28 - DOS 2+ - DOS IDLE INTERRUPT |
|||
INT 29 - DOS 2+ - FAST CONSOLE OUTPUT |
|||
INT 2A - NETBIOS |
|||
INT 2B - DOS 2+ - RESERVED |
|||
INT 2C - DOS 2+ - RESERVED |
|||
INT 2D - DOS 2+ - RESERVED |
|||
INT 2E - DOS 2+ - PASS COMMAND TO COMMAND INTERPRETER FOR EXECUTION |
|||
INT 2F - Multiplex |
|||
INT 30 - (NOT A VECTOR!) - DOS 1+ - FAR JMP instruction |
|||
INT 31 - overwritten by CP/M jump instruction in INT 30 |
|||
INT 32 - (no special use) |
|||
INT 33 - MS MOUSE |
|||
INT 34 - FLOATING POINT EMULATION - OPCODE D8h |
|||
INT 35 - FLOATING POINT EMULATION - OPCODE D9h |
|||
INT 36 - FLOATING POINT EMULATION - OPCODE DAh |
|||
INT 37 - FLOATING POINT EMULATION - OPCODE DBh |
|||
INT 38 - FLOATING POINT EMULATION - OPCODE DCh |
|||
INT 39 - FLOATING POINT EMULATION - OPCODE DDh |
|||
INT 3A - FLOATING POINT EMULATION - OPCODE DEh |
|||
INT 3B - FLOATING POINT EMULATION - OPCODE DFh |
|||
INT 3C - FLOATING POINT EMULATION - SEGMENT OVERRIDE |
|||
INT 3D - FLOATING POINT EMULATION - STANDALONE FWAIT |
|||
INT 3E - FLOATING POINT EMULATION - Borland "SHORTCUT" CALL |
|||
INT 3F - Overlay manager interrupt (Microsoft/Borland) |
|||
INT 40 - DISKETTE - RELOCATED ROM BIOS DISKETTE HANDLER |
|||
INT 41 - SYSTEM DATA - HARD DISK 0 PARAMETER TABLE; CPU - MS Windows |
|||
INT 42 - VIDEO - RELOCATED DEFAULT INT 10 VIDEO SERVICES (EGA,VGA) |
|||
INT 43 - VIDEO DATA - CHARACTER TABLE (EGA,MCGA,VGA) |
|||
INT 44 - VIDEO DATA - CHARACTER FONT (PCjr); Novell NetWare |
|||
INT 45 - Z100/Acorn |
|||
INT 46 - SYSTEM DATA - HARD DISK 1 DRIVE PARAMETER TABLE |
|||
INT 47 - Z100/Acorn/Western Digital/SQL Base |
|||
INT 48 - KEYBOARD (PCjr) - Z100/Watstar/Acorn/Western Digital/Compaq |
|||
INT 49 - SYSTEM DATA (PCjr) - Z100/TI/Watstar/Acorn/MAGic |
|||
INT 4A - SYSTEM - USER ALARM HANDLER |
|||
INT 4B - IBM SCSI interface; Virtual DMA Specification (VDS) |
|||
INT 4C - Z100/Acorn/TI |
|||
INT 4D - Z100 |
|||
INT 4E - TI/Z100 |
|||
INT 4F - Common Access Method SCSI |
|||
INT 50 - IRQ0 relocated by software |
|||
INT 51 - IRQ1 relocated by software |
|||
INT 52 - IRQ2 relocated by software |
|||
INT 53 - IRQ3 relocated by software |
|||
INT 54 - IRQ4 relocated by software |
|||
INT 55 - IRQ5 relocated by software |
|||
INT 56 - IRQ6 relocated by software |
|||
INT 57 - IRQ7 relocated by software |
|||
INT 58 - IRQ8/0 relocated by software |
|||
INT 59 - IRQ9/1 relocated by software; GSS Computer Graphics Interface |
|||
INT 5A - IRQ10/2 relocated by software |
|||
INT 5B - IRQ11/3 relocated by software; Network |
|||
INT 5C - IRQ12/4 relocated by software; Network Interface |
|||
INT 5D - IRQ13/5 relocated by software |
|||
INT 5E - IRQ14/6 relocated by software |
|||
INT 5F - IRQ15/7 relocated by software; HP 95LX GRAPHICS PRIMITIVES |
|||
INT 60 - reserved for user interrupt; multiple purposes |
|||
INT 61 - reserved for user interrupt; multiple purposes |
|||
INT 62 - reserved for user interrupt; multiple purposes |
|||
INT 63 - reserved for user interrupt; multiple purposes |
|||
INT 64 - reserved for user interrupt; multiple purposes |
|||
INT 65 - reserved for user interrupt; multiple purposes |
|||
INT 66 - reserved for user interrupt; multiple purposes |
|||
INT 67 - reserved for user interrupt; LIM EMS; multiple purposes |
|||
INT 68 - multiple purposes |
|||
INT 69 - multiple purposes |
|||
INT 6A - multiple purposes |
|||
INT 6B - multiple purposes |
|||
INT 6C - CONVERTIBLE; DOS 3.2; DECnet DOS network scheduler |
|||
INT 6D - VGA - internal |
|||
INT 6E - DECnet DOS - DECnet NETWORK PROCESS API |
|||
INT 6F - Novell NetWare; 10NET; MS Windows 3.0 |
|||
INT 70 - IRQ8 - CMOS REAL-TIME CLOCK |
|||
INT 71 - IRQ9 - REDIRECTED TO INT 0A BY BIOS |
|||
INT 72 - IRQ10 - RESERVED |
|||
INT 73 - IRQ11 - RESERVED |
|||
INT 74 - IRQ12 - POINTING DEVICE (PS) |
|||
INT 75 - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up) |
|||
INT 76 - IRQ14 - HARD DISK CONTROLLER (AT and later) |
|||
INT 77 - IRQ15 - RESERVED (AT,PS); POWER CONSERVATION (Compaq) |
|||
INT 78 - DOS extenders; multiple purposes |
|||
INT 79 - multiple purposes |
|||
INT 7A - Novell NetWare; IBM 3270; multiple purposes |
|||
INT 7B - multiple purposes |
|||
INT 7C - multiple purposes |
|||
INT 7D - multiple purposes |
|||
INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY; multiple purposes |
|||
INT 7F - multiple purposes |
|||
INT 80 - reserved for BASIC; multiple purposes |
|||
INT 81 - reserved for BASIC |
|||
INT 82 - reserved for BASIC |
|||
INT 83 - reserved for BASIC |
|||
INT 84 - reserved for BASIC |
|||
INT 85 - reserved for BASIC |
|||
INT 86 - IBM ROM BASIC - used while in interpreter; multiple purposes |
|||
INT 87 - IBM ROM BASIC - used while in interpreter |
|||
INT 88 - IBM ROM BASIC - used while in interpreter; multiple purposes |
|||
INT 89 - IBM ROM BASIC - used while in interpreter |
|||
INT 8A - IBM ROM BASIC - used while in interpreter |
|||
INT 8B - IBM ROM BASIC - used while in interpreter |
|||
INT 8C - IBM ROM BASIC - used while in interpreter |
|||
INT 8D - IBM ROM BASIC - used while in interpreter |
|||
INT 8E - IBM ROM BASIC - used while in interpreter |
|||
INT 8F - IBM ROM BASIC - used while in interpreter |
|||
INT 90 - IBM ROM BASIC - used while in interpreter |
|||
INT 91 - IBM ROM BASIC - used while in interpreter |
|||
INT 92 - IBM ROM BASIC - used while in interpreter; multiple purposes |
|||
INT 93 - IBM ROM BASIC - used while in interpreter |
|||
INT 94 - IBM ROM BASIC - used while in interpreter; multiple purposes |
|||
INT 95 - IBM ROM BASIC - used while in interpreter |
|||
INT 96 - IBM ROM BASIC - used while in interpreter |
|||
INT 97 - IBM ROM BASIC - used while in interpreter |
|||
INT 98 - IBM ROM BASIC - used while in interpreter |
|||
INT 99 - IBM ROM BASIC - used while in interpreter |
|||
INT 9A - IBM ROM BASIC - used while in interpreter |
|||
INT 9B - IBM ROM BASIC - used while in interpreter |
|||
INT 9C - IBM ROM BASIC - used while in interpreter |
|||
INT 9D - IBM ROM BASIC - used while in interpreter |
|||
INT 9E - IBM ROM BASIC - used while in interpreter |
|||
INT 9F - IBM ROM BASIC - used while in interpreter |
|||
INT A0 - IBM ROM BASIC - used while in interpreter |
|||
INT A1 - IBM ROM BASIC - used while in interpreter |
|||
INT A2 - IBM ROM BASIC - used while in interpreter |
|||
INT A3 - IBM ROM BASIC - used while in interpreter |
|||
INT A4 - IBM ROM BASIC - used while in interpreter |
|||
INT A5 - IBM ROM BASIC - used while in interpreter |
|||
INT A6 - IBM ROM BASIC - used while in interpreter |
|||
INT A7 - IBM ROM BASIC - used while in interpreter |
|||
INT A8 - IBM ROM BASIC - used while in interpreter |
|||
INT A9 - IBM ROM BASIC - used while in interpreter |
|||
INT AA - IBM ROM BASIC - used while in interpreter |
|||
INT AB - IBM ROM BASIC - used while in interpreter |
|||
INT AC - IBM ROM BASIC - used while in interpreter |
|||
INT AD - IBM ROM BASIC - used while in interpreter |
|||
INT AE - IBM ROM BASIC - used while in interpreter |
|||
INT AF - IBM ROM BASIC - used while in interpreter |
|||
INT B0 - IBM ROM BASIC - used while in interpreter |
|||
INT B1 - IBM ROM BASIC - used while in interpreter |
|||
INT B2 - IBM ROM BASIC - used while in interpreter |
|||
INT B3 - IBM ROM BASIC - used while in interpreter |
|||
INT B4 - IBM ROM BASIC - used while in interpreter |
|||
INT B5 - IBM ROM BASIC - used while in interpreter |
|||
INT B6 - IBM ROM BASIC - used while in interpreter |
|||
INT B7 - IBM ROM BASIC - used while in interpreter |
|||
INT B8 - IBM ROM BASIC - used while in interpreter |
|||
INT B9 - IBM ROM BASIC - used while in interpreter |
|||
INT BA - IBM ROM BASIC - used while in interpreter |
|||
INT BB - IBM ROM BASIC - used while in interpreter |
|||
INT BC - IBM ROM BASIC - used while in interpreter |
|||
INT BD - IBM ROM BASIC - used while in interpreter |
|||
INT BE - IBM ROM BASIC - used while in interpreter |
|||
INT BF - IBM ROM BASIC - used while in interpreter |
|||
INT C0 - IBM ROM BASIC - used while in interpreter |
|||
INT C1 - IBM ROM BASIC - used while in interpreter |
|||
INT C2 - IBM ROM BASIC - used while in interpreter |
|||
INT C3 - IBM ROM BASIC - used while in interpreter |
|||
INT C4 - IBM ROM BASIC - used while in interpreter |
|||
INT C5 - IBM ROM BASIC - used while in interpreter |
|||
INT C6 - IBM ROM BASIC - used while in interpreter |
|||
INT C7 - IBM ROM BASIC - used while in interpreter |
|||
INT C8 - IBM ROM BASIC - used while in interpreter |
|||
INT C9 - IBM ROM BASIC - used while in interpreter |
|||
INT CA - IBM ROM BASIC - used while in interpreter |
|||
INT CB - IBM ROM BASIC - used while in interpreter |
|||
INT CC - IBM ROM BASIC - used while in interpreter |
|||
INT CD - IBM ROM BASIC - used while in interpreter |
|||
INT CE - IBM ROM BASIC - used while in interpreter |
|||
INT CF - IBM ROM BASIC - used while in interpreter |
|||
INT D0 - IBM ROM BASIC - used while in interpreter |
|||
INT D1 - IBM ROM BASIC - used while in interpreter |
|||
INT D2 - IBM ROM BASIC - used while in interpreter |
|||
INT D3 - IBM ROM BASIC - used while in interpreter |
|||
INT D4 - IBM ROM BASIC - used while in interpreter |
|||
INT D5 - IBM ROM BASIC - used while in interpreter |
|||
INT D6 - IBM ROM BASIC - used while in interpreter |
|||
INT D7 - IBM ROM BASIC - used while in interpreter |
|||
INT D8 - IBM ROM BASIC - used while in interpreter |
|||
INT D9 - IBM ROM BASIC - used while in interpreter |
|||
INT DA - IBM ROM BASIC - used while in interpreter |
|||
INT DB - IBM ROM BASIC - used while in interpreter |
|||
INT DC - IBM ROM BASIC - used while in interpreter |
|||
INT DD - IBM ROM BASIC - used while in interpreter |
|||
INT DE - IBM ROM BASIC - used while in interpreter |
|||
INT DF - IBM ROM BASIC - used while in interpreter |
|||
INT E0 - IBM ROM BASIC - used while in interpreter; multiple purposes |
|||
INT E1 - IBM ROM BASIC - used while in interpreter |
|||
INT E2 - IBM ROM BASIC - used while in interpreter |
|||
INT E3 - IBM ROM BASIC - used while in interpreter |
|||
INT E4 - IBM ROM BASIC - used while in interpreter |
|||
INT E5 - IBM ROM BASIC - used while in interpreter |
|||
INT E6 - IBM ROM BASIC - used while in interpreter |
|||
INT E7 - IBM ROM BASIC - used while in interpreter |
|||
INT E8 - IBM ROM BASIC - used while in interpreter |
|||
INT E9 - IBM ROM BASIC - used while in interpreter |
|||
INT EA - IBM ROM BASIC - used while in interpreter |
|||
INT EB - IBM ROM BASIC - used while in interpreter |
|||
INT EC - IBM ROM BASIC - used while in interpreter |
|||
INT ED - IBM ROM BASIC - used while in interpreter |
|||
INT EE - IBM ROM BASIC - used while in interpreter |
|||
INT EF - BASIC - ORIGINAL INT 09 VECTOR |
|||
INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR |
|||
INT F1 - reserved for user interrupt |
|||
INT F2 - reserved for user interrupt |
|||
INT F3 - reserved for user interrupt |
|||
INT F4 - reserved for user interrupt |
|||
INT F5 - reserved for user interrupt |
|||
INT F6 - reserved for user interrupt |
|||
INT F7 - reserved for user interrupt |
|||
INT F8 - reserved for user interrupt |
|||
INT F9 - reserved for user interrupt |
|||
INT FA - reserved for user interrupt |
|||
INT FB - reserved for user interrupt |
|||
INT FC - reserved for user interrupt |
|||
INT FD - reserved for user interrupt |
|||
INT FE - AT/XT286/PS50+ - destroyed by return from protected mode |
|||
INT FF - AT/XT286/PS50+ - destroyed by return from protected mode |
@ -0,0 +1,487 @@ |
|||
Public Domain/Freeware/Shareware by Ralf Brown: |
|||
|
|||
(URLs for use with your favorite WWW browser are at the end of this file) |
|||
|
|||
The x86/MSDOS Interrupt List |
|||
A comprehensive listing of more than 8500 functions available through |
|||
interrupt calls on IBM PCs and compatibles. Includes both |
|||
documented and undocumented functions, plus lists of I/O port, CMOS, |
|||
and memory locations, far-call entry points, model-specific |
|||
registers, and system-management mode state save areas. |
|||
Current version: INTER61A (release 61, 16jul00) |
|||
INTER61B |
|||
INTER61C |
|||
INTER61D |
|||
INTER61E (utility programs) |
|||
INTER61F (hypertext conversion programs) |
|||
|
|||
DVINT |
|||
An extract of the MSDOS Interrupt List containing the DESQview |
|||
and QEMM API calls. Updated whenever there have been significant |
|||
additions to the DESQview/QEMM calls in the Interrupt List. |
|||
Current version: DVINT43 (06jun94) |
|||
|
|||
RBcomm |
|||
A DESQview-aware communications program which sports seamless DSZ, |
|||
PCZ, or PUMA/MPt integration for file transfers; ANSI/VT102, VT52, |
|||
and AVATAR emulation (including 132 columns); speeds to 115200 bps; |
|||
a powerful macro language; dialing directory; ANSI music; and |
|||
more. Runs in 65K with DSZ, 47K without. While it works under |
|||
plain DOS, additional features are available under DESQview. |
|||
Current version: RBCOM346 (v3.46 29jan95) |
|||
|
|||
RBdualVGA |
|||
Use two color displays on one PC. |
|||
Current version: RBDUAL09 (v0.9 02jun96) |
|||
DUAL093S (v0.93 source code, 11sep98) |
|||
|
|||
RBkeyswap |
|||
Exchange left control and CapsLock keys, as well as Esc and `/~. |
|||
Loads itself high, using just 64 bytes; needs only 128 bytes low |
|||
if no high memory is available. |
|||
Current version: RBKEYSWP (v2.0 22jun91; v3.0 included in AMISLIB) |
|||
|
|||
RBpci |
|||
Print out more than you ever wanted to know about the devices |
|||
on the PCI bus inside your computer. All device-specific data |
|||
files are plain text, to let you update/customize them yourself |
|||
(updates for new chips which are sent to the author will be |
|||
included in the following release). Includes full source code |
|||
for the program. |
|||
Current version: RBPCI119 (v1.19, 10jan99) |
|||
|
|||
SPAWNO |
|||
A replacement for the Turbo C and Microsoft C spawn..() functions |
|||
which swaps the current program to disk, EMS, XMS, or raw extended |
|||
memory while the spawned program executes, leaving less than 300 |
|||
bytes in memory. Also includes a variant for Turbo Pascal v4.0 or |
|||
higher. |
|||
Current version: SPWNO413 (v4.13 12dec92) |
|||
Price: libraries free, full source code $100. |
|||
|
|||
AMISLIB |
|||
Public Domain library (with full source code and five sample TSRs) |
|||
for creating self-highloading TSRs which may be unloaded in any |
|||
order. Up to 256 TSRs created with AMISLIB may be installed |
|||
simultaneously, and TSRs can be as small as 128 bytes resident, |
|||
1.4K on disk. One of the sample TSRs is a popup which accesses |
|||
DOS. |
|||
Current version: AMISL092 (v0.92 24sep95) |
|||
|
|||
DV-GLUE |
|||
DESQview API bindings for Turbo/Borland C (also mostly compatible |
|||
with MS C). |
|||
Current version: DVGLU172 (source & compiled) (v1.72 01oct95) |
|||
|
|||
DVKPOLL |
|||
"Poor man's version" of TAME. Makes programs give up CPU time when |
|||
they are in an idle loop polling the keyboard for keystrokes. |
|||
Current version: DVKPOLL2 (18jun88) |
|||
Note: This program has been superseded by DVPTAME. |
|||
|
|||
DVPTAME |
|||
"Not-so-poor man's version" of TAME. Tells DESQview to give the |
|||
remainder of a time slice away if the program is in an idle loop |
|||
polling the keyboard for keystrokes. Uses 0 bytes of memory. |
|||
Current version: DVPTAME (04jun91) |
|||
|
|||
DVdevload |
|||
Load device drivers only in those DESQview windows which need the |
|||
services of the driver, reducing the pre-DESQview overhead and thus |
|||
permitting larger DESQview windows. |
|||
Current version: DVDEVL12 (v1.20 03jan93) |
|||
Note: as of DESQview 2.40, Quarterdeck's DEVICE.COM is able to install |
|||
drivers into the device chain in the same manner as DVdevload; |
|||
however, DEVICE uses eight times as much memory as DVdevload and |
|||
has a serious interaction with 4DOS/NDOS that can lead to system |
|||
crashes. |
|||
|
|||
RBspeed |
|||
Switch the CPU speed of an Intel Pentium motherboard using the |
|||
"Neptune" chipset. Public Domain. |
|||
Current version: RBSPEED1 (v1.00 08sep94) |
|||
|
|||
SPTURBO |
|||
An integrated environment for Borland's Sprint word processor and |
|||
Turbo C, Turbo Pascal, Turbo Assembler, Turbo Debugger, and CDECL. |
|||
Knows which compiler to invoke based on the file's extension, and |
|||
can run MAKE for multi-file projects. |
|||
Current version: SPTURBO (v2.3 Aug 1,1989) |
|||
Note: There will be no further updates of this package. |
|||
|
|||
PURGEMSG |
|||
Delete or copy *.MSG files such that you only see those messages |
|||
from a Fidonet echomail area which interest you. |
|||
Current version: PURGEMSG (v1.00, 04aug91) |
|||
|
|||
-------------- |
|||
Authentication |
|||
-------------- |
|||
|
|||
Beginning 1/1/91, all packages are distributed in PKZIP archives with |
|||
authenticity verification (v1.1 before 4/1/93, v2.0 after). Please |
|||
redistribute only the original archives to preserve the authenticity |
|||
information. If you receive an archive dated after 1/1/91 which fails |
|||
the authenticity check, you should treat it with caution. If you |
|||
receive an archive which passes the PKZIP check but displays an |
|||
authenticity code other than NWS235, then the archive has been |
|||
deliberately tampered with and should be deleted IMMEDIATELY. |
|||
|
|||
Beginning 9/24/95, all packages additionally include detached PGP |
|||
signatures in an enclosed archive named PGP-SIGS.ZIP. My PGP keys |
|||
are available from http://pobox.com/~ralf/ralf.asc or |
|||
ftp://ftp.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/ralf.asc |
|||
|
|||
|
|||
------------- |
|||
Availability: |
|||
------------- |
|||
|
|||
On the Internet, by standard anonymous FTP from FTP.CS.CMU.EDU [128.2.206.173]. |
|||
Change directly to directory /afs/cs.cmu.edu/user/ralf/pub with a |
|||
single command (directories above this are not accessible via |
|||
anonymous FTP). [DV-GLUE is not available here] |
|||
Don't forget to set "binary" mode! If you are refused access to |
|||
the directory, try again later; a fileserver may have been down. |
|||
|
|||
If connected to AFS, you can simply perform standard Unix/VMS/whatever |
|||
directory listing and file copies from the above directory. |
|||
|
|||
Or visit my home page, and grab the files with your favorite web browser: |
|||
http://www.pobox.com/~ralf |
|||
|
|||
On FIDOnet, from Soundingboard BBS 1:129/26 1-412-621-4604 28.8k HST, file req. |
|||
My programs are kept in file area 8 for those wishing to download |
|||
manually. |
|||
|
|||
Alternate Distribution Points (new versions will be available here |
|||
usually within 24 hours of release): |
|||
Internet: SimTel Software Repository mirrors in directories /SimTel/msdos/X. |
|||
X is 'info' for the Interrupt List, 'modem' for RBcomm, 'c' for |
|||
SPAWNO, 'asmutl' for AMISLIB, 'desqview' for DV-GLUE/DVKPOLL/DVPTAME, |
|||
and 'sprint' for SPTURBO. Note that you must use mode "binary" to |
|||
successfully FTP the files. The SimTel mirror sites include |
|||
oak.oakland.edu [141.210.10.117], wuarchive.wustl.edu [128.252.135.4], |
|||
ftp.uu.net [137.39.1.9], nic.funet.fi [128.214.6.100], |
|||
src.doc.ic.ac.uk [146.169.3.7] and archie.au [139.130.4.6]. |
|||
Some packages are also on GARBO.UWASA.FI in /pc/programming. |
|||
|
|||
Bitnet users may also retrieve items on SimTel via the following automated |
|||
mail servers: |
|||
(in the US) LISTSERV@RPITSVM (alias VM.ITS.RPI.EDU) |
|||
LISTSERV@NDSUVM1 (alias VM1.NODAK.EDU) |
|||
(in Europe) TRICKLE@AWIWUW11 (Austria) |
|||
TRICKLE@BANUFS11 (Belgium) |
|||
TRICKLE@DKTC11 (Denmark) |
|||
TRICKLE@FRMOP11 (France) |
|||
BITFTP@BITFTP.BITNET (Germany) |
|||
TRICKLE@IMIPOLI (Italy) |
|||
TRICKLE@HEARN (Netherlands) |
|||
TRICKLE@EB0UB011 (Spain) |
|||
TRICKLE@SEARN (Sweden) |
|||
TRICKLE@TREARN (Turkey) |
|||
(elsewhere) TRICKLE@UNALCOL (Colombia) |
|||
TRICKLE@TAUNIVM (Israel) |
|||
Send a mail message containing the line |
|||
/HELP |
|||
in the body for instructions. |
|||
|
|||
DV-GLUE, DVKPOLL, DVINT, DVPTAME, DVdevload, and RBcomm are also available on |
|||
Fidonet BBSs belonging to DVNet (listed below). |
|||
|
|||
The Interrupt List and SPAWNO are also available on Fidonet BBSs belonging |
|||
to the Programmer's Distribution Network. Selected PDN member boards as of |
|||
March, 1998: |
|||
|
|||
1:232/16 Martin Belcke Peoria, IL (http://www.filegate.org) 1-309-672-4430 |
|||
1:270/101 George Peace Harrisburg, PA -paonline.com (Internet) |
|||
1:3615/50 Planet Connect Satellite Systems |
|||
1:154/280 EXEC-PC BBS Elm Grove, WI |
|||
1:124/3210 Glenn O'Gorman Garland, TX |
|||
1:167/132 Roland Larocque Canada |
|||
1:115/10 Tom Huber Crystal Lake, IL |
|||
1:2320/38 Janis Kracht Louisville, KY (PDN,MISSING,UTIL,PAS,PCB,HAM,STN) |
|||
(http://jkracht.aye.net) BBS: 1-502-245-6778 |
|||
1:272/125 Thomas Gabrinowiz Montgomery, NY |
|||
1:140/53 Frank Cox Melville Sask. Canada |
|||
1:285/85 Richard Rasmussen Omaha, Nebraska |
|||
1:153/9117 Darrell Harder Whiterock, BC |
|||
1:321/212 Vern Pero Dalton MA |
|||
1:342/52 Vincent Danen Edmonton_AB |
|||
1:2605/638 Douglas Vogt Bridewater NJ |
|||
1:3803/7 Ben Ritchey Lafayette, LA |
|||
2:20/11 Peter Bygden Stockholm, Sweden |
|||
2:341/68 Juan Enrique Gomez Madrid, Spain |
|||
2:5032/5 Dmitry Maevsky Novgorod, Russia |
|||
3:774/605 Barry Blackford Hamilton, NZ |
|||
1:133/2 Chuck Robinson Lawrenceville, GA (ftp://ftp.ftbbs.com/fdn) |
|||
2:25/75 Graham Print (RAR, T-MAIL, FSFAN) |
|||
2:254/61 Dave Carter Croydon, Surrey |
|||
2:254/211 Bill Hayles Foots Cray, Kent |
|||
2:254/212 Bill Hayles Foots Cray, Kent |
|||
2:254/233 Peter Friedlos London |
|||
2:254/620 Michael Mehmet London |
|||
2:251/21 Mike Forbes Southsea |
|||
2:251/50 Jim Reeves Gosport, Hampshire |
|||
2:251/101 Roy Arnold Bournemouth |
|||
2:251/203 Robert Leach Fareham, Hampshire |
|||
2:252/7 Andrew Eaves Princes Risborough, Buckinghamshire |
|||
2:252/314 Dwayne Heaton Binfield, Hants |
|||
2:252/555 Andrew Chant Farnborough |
|||
2:255/1 John Burden Exeter. MNL |
|||
2:257/71 Darren Parker Hitchin, Herts |
|||
2:443/13 Colin Turner Bangor, Co. Down, N.Ireland |
|||
2:481/56 Rafel Slimakowski Poland |
|||
2:281/506 Ron Huiskes (SDC,LUX,NOVL,PAS) |
|||
2:245/5530 Michael Bauer Mainz, Germany |
|||
2:205/498 Bo Jakobsen Alta, Sweeden |
|||
2:235/200 Brian Vinberg Copenhagen, Denmark |
|||
2:236/64 Richard Hansen Glumsoe, Denmark |
|||
2:236/1111 J�rgen llgrd Slangerup, Denmark |
|||
2:244/1530 Edgar Schaettle Schwalbach, Germany |
|||
2:291/709 Pierre-Claude Demanet Brussels, Belgium |
|||
2:292/826 Gerry Van Steerteghem Zoersel, Belgium |
|||
2:301/714 Rolf Taschler Zuerich, Switzerland |
|||
2:310/700 Sascha Vogt Vienna, Austria |
|||
2:333/304 Enzo Gasparini Padova, Italy |
|||
2:403/138 Nemrod Kedem Rishon le Zion, Israel |
|||
2:2480/220 Uwe Schirm Muenchen, Germany |
|||
3:633/2 Malcolm Miles Melbourne Victoria Australia |
|||
4:823/1 Adolfo Justiniano Bolivia, South America |
|||
4:806/7 Brazil Marcio Gordiano |
|||
4:901/148 Argentina Fernando Bertuccelli |
|||
4:840/1 Peru Daniel Pizarro |
|||
4:851/1 Uruguay Alejandro Hernandez |
|||
5:7104/2 Henk Wolsink Port Elizabeth, Rep. of South Africa |
|||
6:751/321 Terry Roati Makati City, Philippines |
|||
6:750/213 Manila (Albert Godinez) |
|||
6:750/401 Kalookan City (Albert Uy) |
|||
6:751/15 San Fernando (Jun Martin) |
|||
6:751/2 Quezon City (William Villanueva) |
|||
6:751/20 Olongapo City (Rudy Ordiz) |
|||
6:751/101 Pasig (Victor Reyes) |
|||
6:751/222 Greenhills (Stewart Buckingham) |
|||
6:751/417 Paranaque (Marco Antonio Cabrazal) |
|||
6:754/10 Cebu City (Jojo Sybico) |
|||
6:754/201 Bacolod City (Eduardo M Joven) |
|||
|
|||
------------------------------------------------------------------------ |
|||
|
|||
DVNet nodes as of August 1994: |
|||
|
|||
DVNet node listing as of AUG 03, 1994 |
|||
|
|||
USA |
|||
------------------------------ --------- ------------ -------- |
|||
AK 65'North, Fairbanks 1:355/38 907-452-1460 VFCV32b |
|||
AR Phil's BBS, Walnut Ridge 1:389/10 501-886-1701 HSTV32b |
|||
AR CrossFire, N Little Rock 1:3821/2 501-791-2993 H16V32b |
|||
AR MinnTelligence, Little Rock 1:3821/6 501-664-2237 V32b |
|||
AZ Analog Gate, Sierra Vista 1:309/9 602-458-0451 HSTV32 |
|||
CA Carl's Corner, San Jose 1:10/1 408-248-9704 HSTV32 |
|||
CA Central Computer Banks, LA 1:102/851 213-256-0871 HSTV32b |
|||
CA Gandalf's, El Cajon 1:202/302 619-466-9505 HSTV32 |
|||
CA Stingray!, Clovis 1:205/12 209-298-9461 HST |
|||
CA Bertha Board, Manteca 1:208/1 209-823-0093 HST |
|||
CO Hole in the Wall, Parker 1:104/651 303-841-5515 HSTV32b |
|||
CO Prgrmmrs Playhouse, Colo Springs 1:128/60 719-380-8813 HST |
|||
CT Treasure Island, Danbury 1:141/730 203-791-8532 HSTV32b |
|||
CT Ascii Neighborhood, W Haven 1:141/333 203-934-9852 HST |
|||
CT Death's Domain, Enfield 1:142/629 203-749-6103 HSTV32 |
|||
CT Plainfield News, Plainfield 1:327/452 203-564-8579 HST |
|||
DE KnowledgeBase BBS, Wilmington 1:150/360 302-633-4797 HSTV32 |
|||
FL Stan's Shack, Jacksonville 1:112/5 904-768-3854 HSTV32 |
|||
FL Silicon Dreams, Bradenton 1:137/200 813-746-7788 V32 |
|||
FL Jos' Lounge, Naples 1:3630/40 813-592-1535 HSTV32 |
|||
FL Other World, Tallahassee 1:3605/56 904-668-1092 HST |
|||
FL The Dog House, Tamarac 1:369/54 305-720-3637 HSTV32 |
|||
FL archonRAINBOW, Ft Myers 1:371/13 813-939-3394 HST |
|||
FL Strat's Asylum, Cape Canaveral 1:374/12 407-799-0390 HSTV32b |
|||
FL E.I.L.C. BBS, Palm Bay 1:374/60 407-676-2998 HSTV32b |
|||
FL Southern Systems, Tampa 1:377/9 813-977-7065 HSTV32 |
|||
GA Galaxy Info System, Atlanta 1:133/411 404-671-1024 V32 |
|||
GA Code Plus, Warner Robins 1:3611/15 912-953-1053 HSTV32b |
|||
GA Combat Override, Albany 1:3617/3 912-883-1421 HST |
|||
HI CocoNuts BBS Service, Honolulu 1:345/2 808-845-7054 HSTV32 |
|||
IA Icarus, Iowa City 1:283/657 319-337-9878 HSTV32 |
|||
IL Midrange System, Mt Prospect 1:115/439 708-439-9679 HSTV32 |
|||
IL Buzzard's Roost, Peoria 1:232/17 309-691-5469 HSTV32b |
|||
IN Someplace BBS, Indianapolis 1:231/120 317-353-9981 HST |
|||
IN Joker's Wild, Indianapolis 1:231/510 317-843-1371 HSTV32 |
|||
IN The Jokerman BBS, Bluffton 1:236/12 219-824-5628 ZYXV32b |
|||
LA My Secret Garden, Shreveport 1:380/5 318-865-4503 H16V32b |
|||
LA *Silver Streak RBBS, New Orleans 1:396/15 504-888-6515 HSTV32b |
|||
MA Rainbow's Edge, Westwood 1:101/1 617-551-0495 HSTV32 |
|||
MA Pioneer Valley PCUG1, Amherst 1:321/109 413-256-1037 HST |
|||
MA Denis's Opus, Ayer 1:322/2 508-772-6373 HSTV32 |
|||
MA Waystar BBS, Marlborough 1:322/14 508-481-7147 HST |
|||
MA The Business Card, Lawrence 1:324/121 508-682-5329 HSTV32b |
|||
MD Addict's Attic, Germantown 1:109/423 301-428-8998 V32 |
|||
MD AviTechnic ,Lutherville 1:261/662 301-252-0717 HSTV32 |
|||
MI The Red Eye BBS, Westland 1:2410/213 313-728-0213 V32b |
|||
MI Fast Eddies BBS, Monroe 1:2380/101 313-243-0944 ZYXV32b |
|||
MN Riverside BBS, Elk River 1:282/1008 612-241-9963 V32 |
|||
MO Cheswick's, St Louis 1:100/375 314-965-5296 HSTV32 |
|||
MO Summit Forum, Holt's Summit 1:289/13 314-896-5393 HSTV32 |
|||
MO Cmos, St Joseph 1:294/1 816-233-1357 HSTV32b |
|||
NC Crossed Wires, Dudley 1:3660/809 919-580-7194 H16V32b |
|||
NC Psychotronic BBS, Durham 1:3641/1 919-286-7738 HSTV32 |
|||
NC Programmer's Asstnt, Charlotte 1:379/4 704-544-0010 HST |
|||
NH Our BBS Yours and Mine, Derry 1:132/193 603-432-5287 HSTV32b |
|||
NJ University BBS, Eatontown 1:107/411 908-544-8193 HSTV32b |
|||
NJ Maple Shade Opus, Maple Shade 1:266/12 609-482-8604 HSTV32b |
|||
NJ APFL- The BBS, Tenafly 1:2604/306 201-567-6994 HSTV32b |
|||
NJ Fleet Street, Somerville 1:2605/625 908-722-8962 V32 |
|||
NJ Atrium Way, Morris Plains 1:2606/583 201-984-5555 HSTV32 |
|||
NM Construction Net #6, Los Alamos 1:15/20 505-662-0659 HST |
|||
NV $in City Bit Pit, Las Vegas 1:209/711 702-647-4427 HSTV32 |
|||
NV Danger Zone, Reno 1:213/720 702-828-4907 HSTV32 |
|||
NY Rivendell * TAP/1, Syracuse 1:260/1 716-646-0227 HSTV32 |
|||
OH The Mountain Top, Cincinnati 1:108/107 513-921-5568 HST |
|||
OH Blue Byte BBS, Enon 1:110/270 513-864-1143 HST |
|||
OH Nerd's Nook, Rocky River 1:157/3 216-356-1882 HSTV32b |
|||
OH NHampton Data, Cuyahoga Falls 1:157/533 216-928-8565 HSTV32 |
|||
OH Computer Room, Pickerington 1:226/110 614-861-8377 HSTV32 |
|||
OH Steel Valley BBS, Girard 1:237/500 216-545-2318 HSTV32 |
|||
OH The Outer Limits, Chillicothe 1:2220/10 614-772-5520 H16VFC |
|||
OH South of the Bauder, Chillicothe 1:2220/70 614-773-2423 H16V32b |
|||
OK Ascension, Norman 1:147/46 405-360-4261 HST |
|||
OR Bink of an Aye, Portland 1:105/42 503-297-9043 PEPV32 |
|||
OR Atarian BBS, Portland 1:105/10 503-245-9730 HSTV32 |
|||
OR Busker's Boneyard, Portland 1:105/14 503-771-4773 PEP |
|||
OR Dimension 7, Eugene 1:152/7 503-461-2219 HST |
|||
PA The Other BBS, Harrisburg 1:270/101 717-657-2223 HST |
|||
PA Walsh Microsys, Philadelphia 1:273/917 215-725-9134 HST |
|||
PA Optical Illusion, Allentown 1:273/603 215-797-7409 HSTV32 |
|||
PA U.S.S. Intrepid, Spring House 1:273/703 215-641-0270 HST |
|||
PA Programmer's Haven, Allentown 1:2607/103 610-797-9378 V32BVFC |
|||
PA Cheyenne BBS, Upper Darby 1:2614/409 215-544-0819 HSTV32b |
|||
PR Island Sun, Caparra Heights 1:367/15 809-783-9542 HST |
|||
SC Dreadnaught BBS, Columbia 1:376/50 803-731-3884 V32 |
|||
SC Special Projects, Beech Island 1:360/13 803-827-1725 HSTV32b |
|||
SC Carolina Collections, Sumter 1:3647/1 803-499-4316 HSTV32b |
|||
TN EET BBS, Nashville 1:116/24 615-353-3476 HSTV32 |
|||
TX Conch Opus, Houston 1:106/357 713-667-7213 HSTPCP |
|||
TX Inns of Court, Dallas 1:124/6101 214-458-2620 HSTV32 |
|||
TX Spare Parts, Bedford 1:130/38 817-540-3527 HST |
|||
TX Southern Crossroads, Dallas 1:124/4115 817-481-8984 ZYXV32b |
|||
TX The Gas Company, Arlington 8:930/201 817-265-8938 HST |
|||
TX Wireline, Corpus Christi 1:160/40 512-241-1120 HST |
|||
TX Middle Earth, San Antonio 1:382/19 512-835-4848 HST |
|||
TX Hair of the Dog, Austin 1:382/44 512-219-9446 V32b |
|||
TX Last Chance TBBS, San Antonio 1:387/800 512-822-7519 HST |
|||
TX TSTI INFO NET, Waco 1:388/1000 817-799-1570 HST |
|||
TX Direct Connect!, Victoria 1:3802/213 512-573-0245 HSTV32b |
|||
VA Diving Board, Richmond 1:264/180 804-965-9082 HST |
|||
VA Host D, Newport News 1:271/295 804-887-0577 V32b |
|||
VA Host D, Newport News 1:271/296 804-887-2490 ZYXV32b |
|||
VA Host D, Newport News 1:271/294 804-887-8235 HST |
|||
VA ThunderBolt BBS, Fredericksburg 1:274/13 703-373-9289 HST |
|||
VA Terrapin Station, Norfolk 1:275/13 804-489-7450 HSTV32b |
|||
VT The Ozone Layer, Williston 1:325/118 802-862-5058 HSTV32b |
|||
WA Pacifier BBS, Vancouver 1:105/103 206-253-9770 HSTV32 |
|||
WA Seattle/Everett Hub, Seattle 1:343/300 206-244-8860 HST |
|||
WA Sno-Valley SW Exchange, N Bend 1:343/108 206-888-9249 HSTV32 |
|||
WA Sleepy Hollow BBS, Wenatchee 1:344/78 509-664-4021 V32b |
|||
WA Gecko Control, Fairchild AFB 1:346/26 509-244-0944 V32 |
|||
WA SunDial BBS, Pasco 1:347/7 509-545-1789 HST |
|||
WI County Line BBS, W Allis 1:154/100 414-476-8468 HSTV32b |
|||
WI The Inn, Chippewa Falls 1:2300/10 715-723-3552 HSTV32b |
|||
WY Oregon Trail XRoads, Casper 1:303/5 307-472-3615 H96V32 |
|||
WY Black Diamond, Greybull 1:15/24 307-682-6944 H14V32b |
|||
|
|||
CANADA |
|||
------------------------------ --------- ------------ ---------- |
|||
AB Logical Solutions, Calgary 1:134/10 403-299-9917 HST |
|||
AB Information Corner, Edmonton 1:342/20 403-483-1896 HST |
|||
BC Kiwi-Land, Surrey 1:153/909 604-536-0831 H16V32b |
|||
MB Polar Bear Heaven Winnipeg 1:348/405 204-837-9704 HST |
|||
NB Atlantic Access, St John W 1:255/2 506-635-1964 HST |
|||
ON AFI Comm, Nepean 1:163/115 613-829-0282 HST |
|||
ON Ned's Opus HST Ottawa 1:163/211 613-523-8965 HST |
|||
ON Alpha City BBS, Oshawa 1:229/2 416-579-6302 H14V32b |
|||
ON The Aardvark, Burlington 1:259/110 905-332-4127 H16V32b |
|||
PQ Arcane BBS, Laval 1:167/116 514-687-9586 HST |
|||
SK The DataForce, Regina 1:140/72 306-585-1958 HST |
|||
|
|||
ZONE 2 |
|||
--------------------------------- --------- -------------- ------- |
|||
AU ZAP #3/Cuckoo's Nest 2:310/3 43-1-454330 HSTV32b |
|||
|
|||
BE The Optimist, Antwerpen 2:292/856 32-3-2811450 ZYXV32b |
|||
|
|||
DE The 49er's, Wuppertal 2:243/7801 49-202-305803 HST |
|||
DE Median, Berlin 2:2410/305 49-30-735148 H16V32Terbo |
|||
DE BoersenBox, Friedrichshafen 2:246/8501 49-7541-53191 HSTV32b |
|||
|
|||
FR The Lys Valley, Comines 2:322/2 33-20631262 HSTV32Terbo |
|||
|
|||
GB Enigma Variations, Worcester 2:2/544 44-905-795002 HST |
|||
GB GABBS, Gosport Hants 2:251/16 44-705-524805 HSTV32b |
|||
GB Komputer Knowledge, Cheddington 2:252/7 44-296-668148 HSTV32 |
|||
GB Aureal, Market Harborough 2:254/153 44-858-466594 HST |
|||
GB Trinity I, Exeter 2:255/112 44-392-495899 HSTV32b |
|||
GB Dog & Duck, Hull 2:2503/3 44-482-444650 HSTV32 |
|||
GB Power BBS, Wrexham Clwyd 2:442/78 44-978-824278 HSTV32b |
|||
GB Piston Popper's, Hastings 2:441/80 44-424-853361 HSTV32 |
|||
|
|||
IL Small BBS, Jerusalem 2:402/777 V32b |
|||
|
|||
IT Venus, Pavia PV 2:331/318 39-382-575369 V32bZYX |
|||
IT Genova 2000, Genova 2:332/201 39-10-3770080 V32b |
|||
IT SUBALPINA's_Hub, Torino 2:334/300 39-11-6624400 HSTV32 |
|||
|
|||
NL TouchDown, Hoofddorp 2:280/414 31-2503-52030 H14V32b |
|||
NL Interface HQ, Den Haag 2:281/506 31-70-3360698 V32b |
|||
NL Kiss Software, Almelo 2:283/314 31-5490-13932 ZYXV32b |
|||
NL Programmers Support, Helmond 2:2802/108 31-4920-13558 H14V32b |
|||
NL Byteline! Systems, Hardinxveld 2:285/101 31-1846-17611 H14V32b |
|||
NL DOSSBoss Twente, Delden 2:500/149 31-5407-64701 ZYXV32b |
|||
NL The HEKOM Board 2:500/223 31-3483-4072 V32b |
|||
NL MotherBoard 2:512/197 31-50-187669 H14V32b |
|||
|
|||
SE Capital City BBS,Haninge 2:201/111 46-8-53043088 H14V32 |
|||
SE Fenix, Viksj” 2:201/298 46-8-58011629 V32b |
|||
|
|||
ZONE 3 |
|||
------------------------------ --------- ------------- ------- |
|||
AU Marwick's MadHouse, Brisbane 3:640/820 61-7-3870-2972 PEPV32 |
|||
AU Sentry, Lane Cove NSW 3:711/401 61-2-9428-4687 PEPV32 |
|||
AU Sentry's Shadow, Lane Cove NSW 3:711/501 61-2-9418-6682 V32bTerbo |
|||
AU Revelstone BBS, Doveton Vic 3:632/348 61-3-9741-2353 PEP |
|||
AU Southern Mail CBCS Croyton Vic 3:632/386 61-3-9725-1621 PEP |
|||
AU COMPUlink, Perth WA 3:690/628 61-8-9451-7288 2400 |
|||
AU Phone Box,Inglewood SA 3:800/854 61-8-8380-5505 V32 |
|||
|
|||
The following phone number will come into effect in November 1997 |
|||
AU OZ-Board, Townsville Qsnlnd 3:640/715 61-7-4721-3592 PEPV32RE |
|||
|
|||
ZONE 6 |
|||
------------------------------ --------- ------------- ------- |
|||
HK TAIC Maximus Kowloon 6:700/1 85-2-789-1267 PEPV32 |
|||
|
|||
|
|||
====================================================================== |
|||
|
|||
URLs: |
|||
|
|||
Home page: http://www.pobox.com/~ralf |
|||
|
|||
Files in my FTP area: |
|||
http://www.pobox.com/~ralf/files.html |
|||
ftp://ftp.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/ |
|||
|
|||
Files on SimTel and mirrors: |
|||
ftp://ftp.simtel.net/pub/simtelnet/msdos/info/ [look for inter???.zip] |
|||
ftp://ftp.simtel.net/pub/simtelnet/msdos/c/spwno413.zip |
|||
ftp://ftp.simtel.net/pub/simtelnet/msdos/desqview/dvint43.zip |
|||
ftp://ftp.simtel.net/pub/simtelnet/msdos/desqview/dvglu172.zip |
|||
ftp://ftp.simtel.net/pub/simtelnet/msdos/modem/rbcom346.zip |
|||
|
|||
Files at Garbo: |
|||
ftp://garbo.uwasa.fi/pc/programming/inter61a.zip |
|||
ftp://garbo.uwasa.fi/pc/programming/inter61b.zip |
|||
ftp://garbo.uwasa.fi/pc/programming/inter61c.zip |
|||
ftp://garbo.uwasa.fi/pc/programming/inter61d.zip |
|||
ftp://garbo.uwasa.fi/pc/programming/inter61e.zip |
|||
ftp://garbo.uwasa.fi/pc/programming/inter61f.zip |
@ -0,0 +1,18 @@ |
|||
This is the first of six archives containing the x86/MSDOS Interrupt List, |
|||
release 61. It should contain the following files: |
|||
|
|||
README.NOW |
|||
README.1 |
|||
INTERRUP.A |
|||
INTERRUP.B |
|||
INTERRUP.C |
|||
INTERRUP.D |
|||
FAQ.LST |
|||
OVERVIEW.LST |
|||
TABLES.LST |
|||
SAMPLE.FLT |
|||
SAMPLE1.FLT |
|||
SAMPLE2.FLT |
|||
NEEDHELP.TXT |
|||
RBROWN.TXT |
|||
_ADVERT.TXT |
@ -0,0 +1,76 @@ |
|||
As usual, I still have a queue of unprocessed submissions.... If |
|||
you've sent in any contributions which don't appear in this release but |
|||
which I've acknowledged, they are still on my queue and will appear in |
|||
the future. |
|||
|
|||
Still on the queue: more OpenDOS info, the rest of the TI Professional |
|||
info, lots of chipset info (see NEEDHELP.TXT), .... |
|||
|
|||
|
|||
UPCOMING CHANGES |
|||
================ |
|||
|
|||
The individual sections of the list will be larger in future releases |
|||
so that there are fewer parts. I'm planning on 720K per section unless |
|||
there are strong objections. |
|||
|
|||
|
|||
WHAT'S NEW |
|||
========== |
|||
|
|||
INTER61 |
|||
------- |
|||
New files: |
|||
FAQ.LST start of an FAQ -- submissions welcome! |
|||
|
|||
updated files: |
|||
OPCODES.LST |
|||
|
|||
new info: |
|||
over 400k of additions, including: AHA-154x commands, ATASPI, |
|||
more MSRs (including AMD Athlon), lots of DR-DOS/OpenDOS/PTS-DOS/S-DOS |
|||
info (with more still to be added), AMIGATSR, MULTIJOY, USB4DOS, |
|||
VXDLDR, etc. |
|||
|
|||
Other changes: |
|||
INTERxxF and INTERxxG have been merged. |
|||
|
|||
Note: I have deliberately omitted the usual renumbering of tables because |
|||
I still have lots of pending updates referencing tables using the |
|||
numbering from INTER60 (and there are no doubt some dangling |
|||
cross-references due to incomplete updating). As a result, many |
|||
table numbers will be out of order. |
|||
|
|||
|
|||
INTER60 |
|||
------- |
|||
updated files: |
|||
OPCODES.LST |
|||
|
|||
updated programs: |
|||
INT2WHLP can now handle the new five-character table numbers |
|||
|
|||
new info: |
|||
Econet, VESA VBE/AF, Matrox VESA-OEM functions, more Soft-ICE backdoor |
|||
commands, XBIOS, EZ-Drive, Adaptec AIC-7xxx and AHA-152x ports, |
|||
GEM/ViewMAX, WinTel API, TrLit API, VHRBIOS.SYS, Philips SAA7110(A), |
|||
Intel 82595FX |
|||
|
|||
|
|||
INTER59 |
|||
------- |
|||
format changes: |
|||
all table numbers are now five characters in length, and just in time, |
|||
too: PORTS.LST now has 1014 tables.... |
|||
|
|||
updated files: |
|||
OPCODES.LST |
|||
|
|||
new info: |
|||
chipsets: Intel 440BX/EX/LX, Intel 82371MX, OPTi "Vendetta", OPTi |
|||
82C493/82C382, Via VT82C496G "486SXWB", Via VT82C570M "Apollo Master" |
|||
PicoPower Vesuvius |
|||
other hardware: C&T 82C9001A, C&T 64200/64310, Ensoniq ES1370/1371, |
|||
Cirrus CL-PD6710/6722, Cirrus CL-PD6729 |
|||
Award-BIOS password algorithm, more PCI vendor IDs |
|||
|
@ -0,0 +1,25 @@ |
|||
# Sample filtering file. Lines starting with a hash mark in the first |
|||
# column are comments. Actual filtering lines start with either a dash |
|||
# or a plus sign in the first column (additional modes may be added in |
|||
# the future). Lines starting with a dash specify that interrupt list |
|||
# entries containing that string in the first line will be omitted from |
|||
# the formatted output; lines starting with a plus sign specify that |
|||
# interrupt list entries containing that string are to be included in |
|||
# the formatted output unless one of the minus lines matches. |
|||
|
|||
# Extract MS-DOS calls, but exclude DR-DOS-specific, DOS-extender, and |
|||
# non-DOS networking calls. Note: a few extraneous calls are still included. |
|||
# |
|||
+ DOS |
|||
-DR DOS |
|||
-DR-DOS |
|||
-DR Multiuser DOS |
|||
-Concurrent DOS |
|||
-DOS/16M |
|||
-DOS4GX |
|||
-DOS/4G |
|||
-extender |
|||
-LAN Manager |
|||
-DECnet DOS |
|||
# |
|||
# end of SAMPLE.FLT |
@ -0,0 +1,19 @@ |
|||
# SAMPLE1.FLT |
|||
# Sample filtering file number 1, using only title includes/excludes. |
|||
# Extract MS-DOS calls, but exclude DR-DOS-specific, DOS-extender, and |
|||
# non-DOS networking calls. |
|||
# Note: a few extraneous calls are still included. |
|||
# |
|||
+ DOS |
|||
-DR DOS |
|||
-DR-DOS |
|||
-DR Multiuser DOS |
|||
-Concurrent DOS |
|||
-DOS/16M |
|||
-DOS4GX |
|||
-DOS/4G |
|||
-extender |
|||
-LAN Manager |
|||
-DECnet DOS |
|||
# |
|||
# end of SAMPLE1.FLT |
@ -0,0 +1,17 @@ |
|||
# SAMPLE2.FLT |
|||
# Sample filtering file number 2, using category includes/excludes. Extract |
|||
# MS-DOS and DR-DOS calls, but exclude OS/2 and other operating systems. |
|||
# |
|||
# unconditionally include the DOS category |
|||
>D |
|||
# include 'other OSes' category, but remove OS/2, VMiX, PC-MOS, etc. |
|||
iO |
|||
-OS/2 |
|||
-VMiX |
|||
-PC-MOS |
|||
-STARLITE |
|||
-WinDOS |
|||
-Acorn BBC |
|||
-Linux DOSEMU |
|||
# |
|||
# end of SAMPLE2.FLT |
@ -0,0 +1,184 @@ |
|||
SELECTED TABLES Release 61 Last change 16jul00 |
|||
Copyright (c) 1989-1999,2000 Ralf Brown |
|||
--------!------------------------------------ |
|||
|
|||
Buses |
|||
EISA (see INT 15/AX=D800h) |
|||
I2C / IIC bus (see I2C 00h) |
|||
PCI bus -- see below |
|||
System Management Bus (see INT 15/AX=53B0h/BH=01h) |
|||
Universal Serial Bus OpenHCI (see #00902 at INT 1A/AX=B10Ah) |
|||
|
|||
Country-Specific Information: |
|||
country codes (see #01400 at INT 21/AH=38h) |
|||
country-specific information (see #01398,#01399) |
|||
country-dependent capitalization (see INT 21/AX=6520h) |
|||
code pages (see #00470,#01757) |
|||
extended country-specific info (see #01750 at INT 21/AX=6500h) |
|||
uppercase table (see #01751) |
|||
filename uppercase table (see #01753) |
|||
filename terminator table (see #01754) |
|||
collating table (see #01755) |
|||
DBCS lead byte table (see #01756) |
|||
yes/no response (see INT 21/AX=6523h) |
|||
|
|||
DESQview |
|||
.PIF / .DVP file format (see #00427 at INT 15/AX=102Ch) |
|||
TopView panel file format (see #00436 at INT 15/AH=12h) |
|||
TopView/DESQview streams (see #00446,#00447,#00448 at INT 15/AH=12h) |
|||
|
|||
Device Drivers |
|||
command code (see #02595 at INT 2F/AX=0802h) |
|||
device driver header (see #01646 at INT 21/AH=52h) |
|||
device attributes (see #01647,#01648 at INT 21/AH=52h) |
|||
error codes (see #02598 at INT 2F/AX=0802h) |
|||
request header (see #02596 at INT 2F/AX=0802h) |
|||
|
|||
Disks |
|||
BIOS Parameter Block (BPB) (see #01663) |
|||
diskette drive type (see #00242 at INT 13/AH=08h) |
|||
diskette parameter table (see #01264 at INT 1E) |
|||
DOS drive parameter block (see #01357 at INT 21/AH=1Fh) |
|||
DOS media ID byte (see #01356 at INT 21/AH=1Bh) |
|||
hard disk master boot sector (see #00650 at INT 19) |
|||
hard disk partition record (see #00651 at INT 19) |
|||
IDE controller commands (see #P0515 at PORT 01F0h) |
|||
Partition Types (see #00652 at INT 19) |
|||
serial number (see #01565 at INT 21/AX=440Dh,#01766 at INT 21/AH=69h) |
|||
|
|||
DOS (general) |
|||
DOS commandline (see #02585 at INT 2E) |
|||
DOS Environment block (see #01378 at INT 21/AH=26h,#01395) |
|||
DOS memory allocation strategy (see #01679 at INT 21/AH=58h) |
|||
DOS OEM number (see #01394 at INT 21/AH=30h) |
|||
|
|||
DOS error codes (see INT 21/AH=59h) |
|||
critical error (see #02545 at INT 24) |
|||
extended error codes (see #01680) |
|||
error class (see #01682) |
|||
error locus (see #01684) |
|||
media ID structure (see #01681) |
|||
recommended action (see #01683) |
|||
|
|||
DOS EXEC function (see INT 21/AH=4Bh): |
|||
EXEC parameter block (see #01590,#01591,#01592) |
|||
.EXE file formats (see #01594,#01596,#01609,#01616) |
|||
Program Segment Prefix (PSP) (see #01378 at INT 21/AH=26h) |
|||
|
|||
DOS extenders |
|||
DPMI error codes (see #03143 at INT 21/AX=0000h) |
|||
DPMI mode switch (see #02718 at INT 2F/AX=1687h) |
|||
DPMI vendor-specific API (see #02719 at INT 2F/AX=168Ah) |
|||
DPMS registration structure (see #02793 at INT 2F/AX=43E0h) |
|||
VCPI (see INT 67/AX=DE00h) |
|||
mode switch (see #03665 at INT 67/AX=DE0Ch) |
|||
|
|||
DOS-internal data (see INT 21/AH=52h) |
|||
Current Directory Structure (see #01643,#01644,#01645) |
|||
Disk buffer (see #01649,#01650,#01652,#01653,#01655) |
|||
DOS Parameter List (DPL) (see #01686 at INT 21/AX=5D00h) |
|||
IFS entry point (see #01658) |
|||
List of Lists (SYSVARS) (see #01627) |
|||
Memory Control Block (see #01628,#01630,#01633) |
|||
Novell DOS (see #01584,#01585 at INT 21/AX=4458h) |
|||
SHARE hooks (see #01636) |
|||
Swappable Data Area (SDA) (see #01687,#01690 at INT 21/AX=5D0Bh) |
|||
System File Table (SFT) (see #01639,#01640,#01641,#01642) |
|||
|
|||
Error Codes (Other) |
|||
AMI/Award/C&T/etc. BIOS diagnostics (POST) codes (see #P0410,#P0412) |
|||
Advanced Power Management [APM] (see #00473 at INT 15/AX=5300h) |
|||
EMS (see #03648 at INT 67/AH=40h) |
|||
PRINT.EXE (see #02594 at INT 2F/AX=0101h) |
|||
XMS (see #02775 at INT 2F/AX=4310h) |
|||
|
|||
Files and Directories |
|||
Directory Entry: MS-DOS, DR DOS, Novell DOS (see #01352) |
|||
file attributes (see #01401 at INT 21/AH=3Ch) |
|||
File Control Block (FCB) (see #01345 at INT 21/AH=0Fh) |
|||
File Date and Time (see #01665,#01666 at INT 21/AX=5700h) |
|||
file-sharing behavior (see #01403 at INT 21/AH=3Dh) |
|||
FindFirst data block (see #01626 at INT 21/AH=4Eh) |
|||
Long File Names (see INT 21/AH=71h,#01355 at INT 21/AH=11h) |
|||
|
|||
Keyboard |
|||
keyboard controller commands (see #P0386,#P0401) |
|||
scan codes (see #00006 at INT 09"IRQ1") |
|||
shift states (see #00587,#00588 at INT 16/AH=12h) |
|||
|
|||
Memory |
|||
memory size (see INT 12,INT 15/AH=88h,INT 15/AX=E820h) |
|||
SDRAM/DIMM configuration data (see #I0047 at I2C A0h) |
|||
|
|||
NetWare |
|||
DOS Requester entry point (see #02859 at INT 2F/AX=7A20h) |
|||
error codes (see #01807 at INT 21/AH=BCh,#01811,#01834 at INT 21/AH=E1h) |
|||
LSL status (see #02989 at INT 2F/AX=C000h"LSL") |
|||
NetWare Core Protocol functions (see #02095 at INT 21/AH=F2h) |
|||
VLM error codes (see #02860 at INT 2F/AX=7A20h) |
|||
VLM header (see #02862 at INT 2F/AX=7A20h) |
|||
VLM identifier (see #02861 at INT 2F/AX=7A20h) |
|||
|
|||
PCI Bus |
|||
PCI BIOS error codes (see #00729 at INT 1A/AX=B101h) |
|||
PCI configuration data (see #00878 at INT 1A/AX=B10Ah) |
|||
PCI vendor ID (see #00732 at INT 1A/AX=B102h) |
|||
PCI IRQ Routing Table (see #01259 at INT 1A/AX=B406h) |
|||
|
|||
Plug-and-Play |
|||
Plug-and-Play Installation Structure (see #F0024) |
|||
Plug-and-Play error codes (see #F0081) |
|||
Plug-and-Play device type codes (see #F0085) |
|||
Extended System Configuration Data (ESCD)(see #01244 at INT 1A/AX=B401h) |
|||
generic device IDs (see #F0086) |
|||
|
|||
Power Management |
|||
Advanced Power Management [APM] (see INT 15/AX=5300h) |
|||
Advanced Configuration and Power Interface [ACPI] |
|||
(see #M0094 at MEM xxxxh:xxx0h"ACPI") |
|||
|
|||
Real-Time Clock (see also CMOS.LST) |
|||
status registers (see #00406,#00407,#00408 at INT 15/AH=01h"Amstrad") |
|||
|
|||
Serial Port |
|||
serial port parameters (see #00300 at INT 14/AH=00h) |
|||
serial line status (see #00304 at INT 14/AH=03h) |
|||
modem status (see #00305 at INT 14/AH=03h) |
|||
|
|||
Sound |
|||
Adlib/SoundBlaster registers (see #P0645 at PORT 0388h"AdLib") |
|||
Gravis UltraSound |
|||
registers (see #P0593 at PORT 0340h"Gravis") |
|||
board version (see PORT 0746h"Gravis") |
|||
MegaEm (see INT 21/AX=FD12h,#03975 at INT 81/AX=0200h) |
|||
SoundBlaster SBSIM (see #03972 at INT 80"SBSIM") |
|||
Windows Sound System (see #P0895 at PORT 0530h"Windows Sound") |
|||
|
|||
Video |
|||
character attributes (see #00014 at INT 10/AH=08h) |
|||
Display Combination Code (DCC) (see #00039 at INT 10/AX=1A00h) |
|||
TopView/RSIS shadow buffer [virtual screen] (see INT 10/AH=FEh) |
|||
VESA DDC monitor information (see #00127 at INT 10/AX=4F15h/BL=01h) |
|||
VESA SuperVGA information (see #00077 at INT 10/AX=4F00h) |
|||
video modes |
|||
mode numbers (see #00010 at INT 10/AH=00h) |
|||
UltraVision modes (see #00220 at INT 10/AX=CD04h) |
|||
VESA modes (see #00083 at INT 10/AX=4F02h) |
|||
video parameters (see #01263 at INT 1D) |
|||
|
|||
Windows |
|||
Global EMM Import record (see #01515 at INT 21/AX=4402h) |
|||
Startup Information Structure (see #02631 at INT 2F/AX=1605h) |
|||
VMMCALL (see INT 20"Windows") |
|||
VxD identifiers (see #02642 at INT 2F/AX=1684h) |
|||
|
|||
Other Tables |
|||
AMIS signatures (see #02569,#02570 at INT 2D/AH=00h) |
|||
BIOS equipment list (see #00226 at INT 11) |
|||
BIOS32 Service Directory (see #F0021) |
|||
Interrupt Sharing Protocol (ISP) header (see #02568 at INT 2D) |
|||
Multiprocessor Specification - Floating Pointer Structure (see #M0113) |
|||
Option ROM header (see #F0082) |
|||
ROM configuration table (see #00509 at INT 15/AH=C0h) |
|||
--------!---CONTACT_INFO--------------------- |
|||
E-mail: ralf@pobox.com (currently forwards to ralf@telerama.lm.com) |
@ -0,0 +1,112 @@ |
|||
Warning: Blatant advertisements follow |
|||
|
|||
Tired of wearing out printer ribbons getting a hardcopy of the interrupt |
|||
list? Want the list split up by subject and thoroughly indexed? Try |
|||
|
|||
PC Interrupts: |
|||
A Programmer's Reference to BIOS, DOS, and Third-Party Calls |
|||
(second edition) |
|||
Ralf Brown and Jim Kyle |
|||
1210 pages |
|||
Addison-Wesley |
|||
ISBN 0-201-62485-0 |
|||
$39.95 |
|||
|
|||
Corresponds to the non-networking portions of INTER36 with a few of the |
|||
additions from INTER37. |
|||
|
|||
The companion book Network Interrupts corresponds to the networking |
|||
portions of INTER37 with a few of the additions from INTER38. |
|||
|
|||
Network Interrupts: A Programmer's Reference to Network APIs |
|||
Ralf Brown and Jim Kyle |
|||
730 pages |
|||
Addison-Wesley 1994 |
|||
ISBN 0-201-6644-6 |
|||
$29.95 |
|||
|
|||
Now (December 1994) available: |
|||
|
|||
Uninterrupted Interrupts: A Programmer's CD-ROM Reference to |
|||
Network APIs, and to the BIOS, DOS, and Third-Party Calls |
|||
Ralf Brown and Jim Kyle |
|||
Addison-Wesley |
|||
ISBN 0-201-40966-6 |
|||
$49.95 |
|||
|
|||
CD-ROM containing the full text of both PC Interrupts (2nd ed) and |
|||
Network Interrupts, updated to include information added through INTER42. |
|||
|
|||
------- |
|||
|
|||
PC Interrupts is now available in Chinese. I don't know the exact title |
|||
(and couldn't reproduce it here), but it is a three-volume set which |
|||
appears to be a straight translation of the Interrupt List, circa |
|||
INTER26. |
|||
|
|||
ISBN 957-652-272-2 (INT 00h-1Fh) 516 pages, NT$ 300 |
|||
ISBN 957-652-271-4 (INT 20h-30h) 704 pages, NT$ 400 |
|||
ISBN 957-652-261-7 (INT 31h-FFh) 488 pages, NT$ 280 |
|||
|
|||
Also available in Russian.... ISBN 5-03-002989-3 (vol. 1) |
|||
ISBN 5-03-002990-7 (vol. 2) |
|||
The Russian version is a translation of the first edition. |
|||
|
|||
------- |
|||
|
|||
Undocumented DOS: |
|||
A Programmer's Guide to Reserved MS-DOS Functions and Data Structures |
|||
(second edition) |
|||
Andrew Schulman, Ralf Brown, David Maxey, Raymond J. Michels, and |
|||
Jim Kyle |
|||
|
|||
880 pages, 7-3/8" x 9-1/8" |
|||
Addison-Wesley |
|||
ISBN 0-201-63287-X |
|||
$44.95 (book and 1.44M disk) |
|||
|
|||
Includes a repackaged version of INTER36, script-based interrupt |
|||
monitoring utility, source for a sample network redirector, discussions |
|||
of TSRs/multitasking/networks/installable file systems/debugging, |
|||
lots of examples, etc. |
|||
|
|||
Jolt Productivity Award winner, 1991 (first edition) |
|||
|
|||
------- |
|||
|
|||
Undocumented DOS (first edition) is now also available in Chinese. |
|||
ISBN 7-302-01071-4. |
|||
|
|||
------- |
|||
|
|||
WindowBook, Inc., the folks who prepared the hypertext version for |
|||
_Undocumented_DOS_, first edition, is tracking my releases of the |
|||
interrupt list, and offering the WindowBook version for $39.95 ($19.95 |
|||
for updates). You can reach them at 800-524-0380 or 617-661-9515. Note |
|||
that I have no financial interest whatsoever in WindowBook's offering, |
|||
I'm just letting people know of value-added versions of the list. |
|||
|
|||
Window Book, Inc. |
|||
61 Howard Street |
|||
Cambridge, MA 02139 |
|||
|
|||
------- |
|||
|
|||
The following books may also be of interest: |
|||
|
|||
DOS Internals |
|||
Geoff Chappell |
|||
740 pages + 1.44M disk, $39.95 |
|||
Addison-Wesley |
|||
ISBN 0-201-60835-9 |
|||
|
|||
The Undocumented PC: A Programmer's Guide to I/O, CPUs, and |
|||
Fixed Memory Areas |
|||
Frank van Gilluwe |
|||
916 pages + 1.44M disk, $44.95 |
|||
Addison-Wesley |
|||
ISBN 0-201-62277-7 |
|||
|
|||
Again, I have no financial interest in the above (though I have met both |
|||
authors). |
|||
|
@ -0,0 +1,10 @@ |
|||
x86/MS-DOS Interrupt List, Release 61 |
|||
A Comprehensive listing of interrupt |
|||
calls, both documented and undocumented, |
|||
plus ports/memory/CMOS/etc. Over 9600 |
|||
entries (plus 5400 tables) in INTER61A |
|||
to INTER61D, utility programs and |
|||
viewers in INTER61E, and hypertext |
|||
conversion progs & WinHelp utilities in |
|||
INTER60F. Over 8 million bytes of |
|||
text! Released 2000/07/16. |
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,10 @@ |
|||
This is the second of six archives containing the x86/MSDOS Interrupt List, |
|||
release 61. It should contain the following files: |
|||
|
|||
README.2 |
|||
INTERRUP.E |
|||
INTERRUP.F |
|||
INTERRUP.G |
|||
INTERRUP.H |
|||
INTERRUP.I |
|||
GLOSSARY.LST |
@ -0,0 +1,36 @@ |
|||
[File provided by Bent Lynggaard <lynggaard@risoe.dk>] |
|||
This list suggests keywords for search on different categories. More than |
|||
one keyword are suggested for some categories, separated by a semicolon. |
|||
|
|||
--------!---CATEGORYKEYS---------------------- |
|||
A - applications, a - access software;screen readers, |
|||
B - BIOS;Basic In/Out System (BIOS);In/Out system (BIOS);Out/In system (BIOS), |
|||
b - vendor-specific BIOS;BIOS (vendor-specific);extensions (BIOS), |
|||
C - CPU-generated, c - caches;spoolers, |
|||
D - DOS kernel;kernel (DOS);operating system (DOS), |
|||
d - disk I/O enhancements;enhancements (disk I/O), |
|||
E - DOS extenders;extenders (DOS), |
|||
e - electronic mail;e-mail;mail (electronic), |
|||
F - FAX;telefax, f - file manipulation, |
|||
G - debuggers;debugging tools, g - games |
|||
H - hardware, h - vendor-specific hardware;hardware (vendor-specific), |
|||
I - IBM workstation;IBM terminal emulators, |
|||
i - system info;system monitoring |
|||
J - Japanese, j - joke programs, |
|||
K - keyboard enhancers;enhancers (keyboard), |
|||
k - file compression;compression (files), |
|||
l - shells;command interpreters, |
|||
M - mouse;pointing device, m - memory management, |
|||
N - network, n - non-traditional input devices;special input devices, |
|||
O - other operating systems;non-standard operating systems;operating systems (non-standard), |
|||
P - printer enhancements;enhancements (printer), p - power management, |
|||
Q - DESQview programs;TopView programs;Quarterdeck programs, |
|||
R - remote control;remote file access, r - runtime support, |
|||
S - serial I/O;COM port I/O, s - sound;speech, |
|||
T - DOS-based task switchers;task switchers;multitaskers, |
|||
t - TSR libraries |
|||
U - resident utilities;utilities (resident);TSR utilities, |
|||
u - emulators, |
|||
V - video, v - virus;antivirus, W - MS Windows;Windows, |
|||
X - expansion bus BIOSes;BIOSes (expansion bus), |
|||
y - security, * - reserved |
File diff suppressed because it is too large
@ -0,0 +1,10 @@ |
|||
x86/MS-DOS Interrupt List, Release 61 |
|||
A Comprehensive listing of interrupt |
|||
calls, both documented and undocumented, |
|||
plus ports/memory/CMOS/etc. Over 9600 |
|||
entries (plus 5400 tables) in INTER61A |
|||
to INTER61D, utility programs and |
|||
viewers in INTER61E, and hypertext |
|||
conversion progs & WinHelp utilities in |
|||
INTER60F. Over 8 million bytes of |
|||
text! Released 2000/07/16. |
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,135 @@ |
|||
iAPX 86 Interrupt Primer |
|||
------------------------ |
|||
|
|||
by Ralf Brown |
|||
12/87 |
|||
Updated 6/88, 4/90, 9/92, 1/97 |
|||
|
|||
|
|||
What is an interrupt? |
|||
--------------------- |
|||
An interrupt is a hardware signal that tells the CPU to temporarily |
|||
stop what it is doing and go do something else. Without interrupts, |
|||
the CPU would have to constantly check for external events; with |
|||
interrupts, the CPU can work on something else and still respond to |
|||
an event as soon as it occurs. |
|||
|
|||
CPUs typically have an instruction to disable interrupts for use |
|||
when a section of code has to run without being disturbed by |
|||
external events. Because of this, most CPUs also have a special |
|||
interrupt called a Non-Maskable Interrupt (NMI), which is responded |
|||
to even when all other interrupts are disabled. The NMI is used to |
|||
signal calamities such as memory failure or imminent power loss. |
|||
|
|||
Why so many different interrupts? |
|||
--------------------------------- |
|||
The 8086 family of processors has the ability to recognize 256 |
|||
different interrupts. They also have the ability to let a program |
|||
invoke any of these interrupts with a special instruction, known as |
|||
a software interrupt (as opposed to a hardware interrupt which is |
|||
signalled from outside the processor). Software interrupts are |
|||
treated just like hardware interrupts, except that they are never |
|||
disabled and do not result in an acknowledgement to other chips in |
|||
the computer. The software interrupt instruction on the 8086 family |
|||
is called INT, and is given the number of the interrupt. Thus an |
|||
INT 21h instruction invokes interrupt number 33 decimal. |
|||
|
|||
Other processors also have software interrupts, though they often |
|||
use different names, such as the Motorola 68000 family TRAP |
|||
instruction, the Intel 8080 RST (ReSTart) instruction, or many |
|||
mainframes' SVC (SuperVisor Call). |
|||
|
|||
Since a program can invoke an interrupt by number rather than by its |
|||
address (as it has to in calling subroutines), interrupts are a |
|||
convenient way of providing services without having to recompile a |
|||
program whenever the address of the code providing the service |
|||
changes. This also allows a user program to enhance the services |
|||
provided by directing the interrupt to itself. These enhanced |
|||
services can then be made available to other programs. |
|||
|
|||
How does an interrupt work in real-address mode? |
|||
------------------------------------------------ |
|||
The 8086 reserves the lowest 1024 bytes of memory for a table (IVT, |
|||
Interrupt Vector Table) containing the addresses for each of the 256 |
|||
possible interrupts. When an interrupt occurs (hardware or |
|||
software), the processor multiplies its number by 4 and looks at the |
|||
resulting memory location to find the address of the piece of code |
|||
which handles the interrupt. It then places the current address in |
|||
the program and the processor flags on the stack, and jumps to the |
|||
beginning of the interrupt handler. |
|||
|
|||
When the interrupt handler finishes, it invokes a special |
|||
instruction to return from the interrupt. This instruction takes |
|||
the previously saved flags and program address off of the stack and |
|||
places them back in the appropriate registers in the CPU. |
|||
|
|||
The interrupt handler has to be careful to preserve any registers |
|||
that it uses which are not used to communicate results to the |
|||
program that invoked the interrupt. If the interrupt can be |
|||
triggered by a hardware interrupt (only certain ones can on IBM |
|||
PC's, XT's, and AT's), then the interrupt handler has to preserve |
|||
ALL registers, since the interrupt could have happened anywhere. |
|||
|
|||
How does an interrupt work in protected mode? |
|||
--------------------------------------------- |
|||
The 80286 and later processors can also operate in protected mode, |
|||
in which case the interrupt handling is somewhat different. First, |
|||
the interrupt table consists of eight-byte descriptors instead of |
|||
four-byte addresses, and need not be located at physical address |
|||
zero, nor contain the full 256 entries (the address and size of the |
|||
Interrupt Descriptor Table (IDT) may be manipulated with the LIDT |
|||
and SIDT instructions). |
|||
|
|||
Second, in protected mode, the descriptor for an interrupt number |
|||
specifies HOW control is transferred to the interrupt handler. |
|||
Three types of transfer are possible: Interrupt Gate, Trap Gate, |
|||
and Task Gate. The first two types transfer control to a handler |
|||
running in the same process as the active program, while a Task Gate |
|||
performs a complete context switch in order to invoke a handler in |
|||
a different process from the active program. Interrupt and Trap |
|||
gates are identical except that an Interrupt Gate will clear IF |
|||
and thus disable interrupts, while a Trap Gate leaves IF unchanged. |
|||
|
|||
How does an interrupt work in virtual-86 (V86) mode? |
|||
---------------------------------------------------- |
|||
The 80386 and later processors provide a virtual-8086 mode which is |
|||
a protected mode that appears to software to be the same as Real |
|||
mode. Because it is a protected mode, however, interrupts and |
|||
various other actions that potentially affect system integrity do |
|||
not execute directly, but instead invoke a supervisor program running |
|||
in standard protected mode. Thus, whenever a program running in |
|||
V86 mode invokes an interrupt call, the CPU switches to protected |
|||
mode and transfers control to the interrupt handler specified by |
|||
the protected-mode IDT, rather than the real-mode IVT. The |
|||
supervisor program may handle the interrupt call in any way it |
|||
likes, but typically switches the CPU back into V86 mode and jumps |
|||
to the address specified in the real-mode IVT (a process which is |
|||
known as "reflecting" the interrupt). |
|||
|
|||
|
|||
GLOSSARY |
|||
-------- |
|||
API (Application Program[ming] Interface) |
|||
An API is the set of function calls and services that a program |
|||
makes available to other processes (applications). Each function or |
|||
service has a set format which specifies the values to be supplied |
|||
by the caller and the values which are returned. Because of this |
|||
interface specification, the underlying organization of the function |
|||
or service can be changed without affecting the applications which |
|||
use it. For example, the DOS INT 21h file access functions remained |
|||
unchanged between DOS 2.x and DOS 3.x, even though the internal data |
|||
structures and code organization changed significantly. |
|||
|
|||
IDT (Interrupt Descriptor Table) |
|||
|
|||
IVT (Interrupt Vector Table) |
|||
|
|||
NMI (Non-Maskable Interrupt) |
|||
Most external (hardware) interrupts can be disabled by the CLI |
|||
(CLear Interrupt enable flag) instruction when the CPU is executing |
|||
critical code that should not be interrupted, such as switching from |
|||
one stack to another. However, there are some situations so dire |
|||
that the CPU must act on them immediately no matter what else it is |
|||
doing, even if it has disabled interrupts. The Non-Maskable |
|||
Interrupt serves precisely this purpose, as it cannot be disabled |
|||
(masked) by the CPU. |
Binary file not shown.
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,17 @@ |
|||
This is the third of six archives containing the x86/MSDOS Interrupt List, |
|||
release 61. It should contain: |
|||
|
|||
README.3 |
|||
INTERRUP.1ST |
|||
INTERRUP.J |
|||
INTERRUP.K |
|||
INTERRUP.L |
|||
INTERRUP.M |
|||
INTERRUP.N |
|||
INTERRUP.PRI |
|||
FARCALL.LST |
|||
MEMORY.LST |
|||
MSR.LST |
|||
SMM.LST |
|||
INTPRINT.COM |
|||
CATEGORY.KEY |
@ -0,0 +1,291 @@ |
|||
SYSTEM-MANAGEMENT MODE Release 61 Last change 16jul00 |
|||
Copyright (c) 1997,1998,1999,2000 Ralf Brown |
|||
|
|||
--------------------------------------------- |
|||
SMM Am486 |
|||
|
|||
Format of Am486 SMM State-Save Map: |
|||
Offset Size Description (Table S0001) |
|||
FE00h reserved |
|||
FEE4h DWORD DR3 |
|||
FEE8h DWORD DR2 |
|||
FEECh DWORD DR1 |
|||
FEF0h DWORD DR0 |
|||
FEF4h DWORD CR2 |
|||
FEF8h DWORD SMM state dump base address |
|||
fEFCh DWORD SMM revision ID (see #S0004) |
|||
FF00h WORD I/O restart |
|||
(set to 00FFh to re-execute trapped I/O) |
|||
FF02h WORD halt auto restart |
|||
(bit 0 set on entry if SMI during HLT) |
|||
(set to 00FFh to restart from HLT) |
|||
FF04h DWORD I/O trap word (see #S0002) |
|||
FF08h DWORD reserved |
|||
FF0Ch DWORD reserved |
|||
FF10h DWORD previous EIP |
|||
FF14h 5 DWORDs ??? |
|||
FF28h DWORD reserved |
|||
FF2Ch DWORD reserved |
|||
FF30h DWORD ES limit |
|||
FF34h DWORD ES base |
|||
FF38h DWORD ES attributes |
|||
FF3Ch DWORD CS limit |
|||
FF40h DWORD CS base |
|||
FF44h DWORD CS attributes |
|||
FF48h DWORD SS limit |
|||
FF4Ch DWORD SS base |
|||
FF50h DWORD SS attributes |
|||
FF54h DWORD DS limit |
|||
FF58h DWORD DS base |
|||
FF5Ch DWORD DS attributes |
|||
FF60h DWORD FS limit |
|||
FF64h DWORD FS base |
|||
FF68h DWORD FS attributes |
|||
FF6Ch DWORD GS limit |
|||
FF70h DWORD GS base |
|||
FF74h DWORD GS attributes |
|||
FF78h DWORD LDT limit |
|||
FF7Ch DWORD LDT base |
|||
FF80h DWORD LDT attribute |
|||
FF84h DWORD GDT limit |
|||
FF88h DWORD GDT base |
|||
FF8Ch DWORD GDT attribute |
|||
FF90h DWORD IDT limit |
|||
FF94h DWORD IDT base |
|||
FF98h DWORD IDT attribute |
|||
FF9Ch DWORD TSS limit |
|||
FFA0h DWORD TSS base |
|||
FFA4h DWORD TSS attribute |
|||
FFA8h WORD ES |
|||
FFAAh WORD unused??? |
|||
FFACh WORD CS |
|||
FFAEh WORD unused??? |
|||
FFB0h WORD SS |
|||
FFB2h WORD unused??? |
|||
FFB4h WORD DS |
|||
FFB6h WORD unused??? |
|||
FFB8h WORD FS |
|||
FFBAh WORD unused??? |
|||
FFBCh WORD GS |
|||
FFBEh WORD unused??? |
|||
FFC0h DWORD LDTR |
|||
FFC4h DWORD TR |
|||
FFC8h DWORD DR7 |
|||
FFCCh DWORD DR6 |
|||
FFD0h DWORD EAX |
|||
FFD4h DWORD ECX |
|||
FFD8h DWORD EDX |
|||
FFDCh DWORD EBX |
|||
FFE0h DWORD ESP |
|||
FFE4h DWORD EBP |
|||
FFE8h DWORD ESI |
|||
FFECh DWORD EDI |
|||
FFF0h DWORD EIP |
|||
FFF4h DWORD EFLAGS |
|||
FFF8h DWORD CR3 |
|||
FFFCh DWORD CR0 |
|||
SeeAlso: #S0003 |
|||
|
|||
Bitfields for AMD Am486 I/O trap word: |
|||
Bit(s) Description (Table S0002) |
|||
31-16 I/O address |
|||
15-2 reserved |
|||
1 valid I/O instruction |
|||
0 direction |
|||
SeeAlso: #S0001 |
|||
--------------------------------------------- |
|||
SMM AMD-K5 |
|||
|
|||
Format of AMD K5 SMM State-Save Area: |
|||
Offset Size Description (Table S0003) |
|||
FE00h reserved |
|||
FEF8h DWORD SMM base address |
|||
(may be set to any multiple of 32K; initially 00030000h) |
|||
FEFCh DWORD SMM revision identifier (see #S0004) |
|||
FF00h WORD I/O trap restart slot (see #S0007) |
|||
FF02h WORD HLT restart slot (see #S0005) |
|||
FF04h DWORD I/O restart EDI |
|||
FF08h DWORD I/O restart ECX |
|||
FF0Ch DWORD I/O restart ESI |
|||
FF10h DWORD CR4 |
|||
FF14h DWORD CR2 |
|||
FF18h 3 DWORDs reserved |
|||
FF24h DWORD ES limit |
|||
FF28h DWORD ES base |
|||
FF2Ch DWORD ES attributes |
|||
FF30h DWORD CS limit |
|||
FF34h DWORD CS base |
|||
FF38h DWORD CS attributes |
|||
FF3Ch DWORD SS limit |
|||
FF40h DWORD SS base |
|||
FF44h DWORD SS attributes |
|||
FF48h DWORD DS limit |
|||
FF4Ch DWORD DS base |
|||
FF50h DWORD DS attributes |
|||
FF54h DWORD FS limit |
|||
FF58h DWORD FS base |
|||
FF5Ch DWORD FS attributes |
|||
FF60h DWORD GS limit |
|||
FF64h DWORD GS base |
|||
FF68h DWORD GS attributes |
|||
FF6Ch DWORD LDT limit |
|||
FF70h DWORD LDT base |
|||
FF74h DWORD LDT attributes |
|||
FF78h DWORD TSS limit |
|||
FF7Ch DWORD TSS base |
|||
FF80h DWORD TSS attributes |
|||
FF84h DWORD GDT limit |
|||
FF88h DWORD GDT base |
|||
FF8Ch DWORD IDT limit |
|||
FF90h DWORD IDT base |
|||
FF94h 2 DWORDs reserved |
|||
FF9Ch DWORD I/O trap EIP |
|||
FFA0h DWORD reserved |
|||
FFA4h DWORD I/O trap DWORD (see #S0006) |
|||
FFA8h WORD ES |
|||
FFAAh WORD unused??? |
|||
FFACh WORD CS |
|||
FFAEh WORD unused??? |
|||
FFB0h WORD SS |
|||
FFB2h WORD unused??? |
|||
FFB4h WORD DS |
|||
FFB6h WORD unused??? |
|||
FFB8h WORD FS |
|||
FFBAh WORD unused??? |
|||
FFBCh WORD GS |
|||
FFBEh WORD unused??? |
|||
FFC0h DWORD LDTR |
|||
FFC4h DWORD TR |
|||
FFC8h DWORD DR7 |
|||
FFCCh DWORD DR6 |
|||
FFD0h DWORD EAX |
|||
FFD4h DWORD ECX |
|||
FFD8h DWORD EDX |
|||
FFDCh DWORD EBX |
|||
FFE0h DWORD ESP |
|||
FFE4h DWORD EBP |
|||
FFE8h DWORD ESI |
|||
FFECh DWORD EDI |
|||
FFF0h DWORD EIP |
|||
FFF4h DWORD EFLAGS |
|||
FFF8h DWORD CR3 |
|||
FFFCh DWORD CR0 |
|||
SeeAlso: #S0001 |
|||
|
|||
Bitfields for AMD K5 SMM Revision Identifier: |
|||
Bit(s) Description (Table S0004) |
|||
31-18 reserved (0) |
|||
17 SMM base address relocation available (always 1 [enabled] on K5) |
|||
16 I/O trap restart supported (always 1 on K5) |
|||
15-0 SMM revision level (currently 0000h) |
|||
SeeAlso: #S0003 |
|||
|
|||
Bitfields for AMD K5 Halt Restart Slot: |
|||
Bit(s) Description (Table S0005) |
|||
15-1 undefined |
|||
0 (on SMM entry) entered SMM from Halt state |
|||
(at RSM) return to Halt state instead of state in SMM state-save area |
|||
SeeAlso: #S0003 |
|||
|
|||
Bitfields for AMD K5 I/O Trap DWORD: |
|||
Bit(s) Description (Table S0006) |
|||
31-16 I/O port address |
|||
15 I/O was string operation (INS,OUTS,etc.) |
|||
14-2 reserved |
|||
1 valid I/O instruction |
|||
0 direction (0 = output, 1 = input) |
|||
SeeAlso: #S0003,#S0007 |
|||
|
|||
Bitfields for AMD K5 I/O Trap Restart Slot: |
|||
Bit(s) Description (Table S0007) |
|||
31-16 reserved |
|||
15-0 I/O instruction restart on RSM |
|||
0000h resume at next instruction following trapped I/O instruction |
|||
(default on SMM entry) |
|||
00FFh re-execute the trapped I/O instruction |
|||
Note: before changing the restart value, check that the I/O instruction is |
|||
actually valid (see #S0006) |
|||
SeeAlso: #S0003,#S0006 |
|||
--------------------------------------------- |
|||
SMM Pentium |
|||
|
|||
Format of Pentium State Dump record: |
|||
Offset Size Description (Table S0008) |
|||
FE00h 248 BYTEs officially reserved, actually unused |
|||
FEF8h DWORD state dump base address (must be multiple of 32K) |
|||
FEFCh DWORD SMM revision identifier |
|||
bits 15-0: SMM revision level |
|||
bit 16: I/O trap extension is present (offset FF00h) |
|||
bit 17: SMM base relocation supported (offset FEF8h) |
|||
bits 31-18: reserved |
|||
FF00h WORD I/O Trap restart |
|||
(set to 00FFh to re-execute trapped I/O) |
|||
FF02h WORD Halt auto-restart |
|||
(bit 0 set on entry if SMI during HLT; if handler clears it, |
|||
the CPU returns to the instruction after the interrupted HLT |
|||
rather than to the HLT instruction) |
|||
FF04h DWORD (undoc) I/O restart EDI / CR0 |
|||
FF08h DWORD (undoc) I/O restart ECX |
|||
FF0Ch DWORD (undoc) I/O restart ESI |
|||
FF10h DWORD (undoc) I/O restart EIP |
|||
FF14h 16 BYTEs unused |
|||
FF24h WORD (undoc) alternate DR6 |
|||
FF26h WORD (undoc) RSM control |
|||
if bit 0 set on return, the low word of DR6 is loaded from FF26h |
|||
instead of FFCCh |
|||
FF28h DWORD (undoc) CR4 |
|||
FF2Ch DWORD unused |
|||
FF30h 12 BYTEs (undoc) ES descriptor cache |
|||
DWORD limit |
|||
DWORD base address |
|||
DWORD type |
|||
FF3Ch 12 BYTEs (undoc) CS descriptor cache |
|||
FF48h 12 BYTEs (undoc) SS descriptor cache |
|||
FF54h 12 BYTEs (undoc) DS descriptor cache |
|||
FF60h 12 BYTEs (undoc) FS descriptor cache |
|||
FF6Ch 12 BYTEs (undoc) GS descriptor cache |
|||
FF78h 12 BYTEs (undoc) LDT descriptor cache |
|||
FF84h 12 BYTEs (undoc) GDT descriptor cache |
|||
FF90h 12 BYTEs (undoc) IDT descriptor cache |
|||
FF9Ch 12 BYTEs (undoc) TSS descriptor cache |
|||
FFA8h WORD ES |
|||
FFAAh WORD reserved |
|||
FFACh WORD CS |
|||
FFAEh WORD reserved |
|||
FFB0h WORD SS |
|||
FFB2h WORD reserved |
|||
FFB4h WORD DS |
|||
FFB6h WORD reserved |
|||
FFB8h WORD FS |
|||
FFBAh WORD reserved |
|||
FFBCh WORD GS |
|||
FFBEh WORD reserved |
|||
FFC0h DWORD LDTR |
|||
FFC4h DWORD TR |
|||
FFC8h DWORD DR7 |
|||
FFCCh DWORD DR6 |
|||
FFD0h DWORD EAX |
|||
FFD4h DWORD ECX |
|||
FFD8h DWORD EDX |
|||
FFDCh DWORD EBX |
|||
FFE0h DWORD ESP |
|||
FFE4h DWORD EBP |
|||
FFE8h DWORD ESI |
|||
FFECh DWORD EDI |
|||
FFF0h DWORD EIP |
|||
FFF4h DWORD EFLAGS |
|||
FFF8h DWORD CR3 |
|||
FFFCh DWORD CR0 |
|||
SeeAlso: #S0003 |
|||
--------!---Admin---------------------------- |
|||
Highest Table Number = S0008 |
|||
--------!---FILELIST------------------------- |
|||
Please redistribute all of the files comprising the interrupt list (listed at |
|||
the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a |
|||
quartet of archives named INTER61A through INTER61D (preferably the original |
|||
authenticated PKZIP archives), and the utility and hypertext conversion |
|||
programs in two additional archives called INTER61E.ZIP and INTER61F.ZIP. |
|||
|
|||
Copyright (c) 1989-1999,2000 Ralf Brown |
|||
--------!---CONTACT_INFO--------------------- |
|||
E-mail: ralf@pobox.com (currently forwards to ralf@telerama.lm.com) |
@ -0,0 +1,27 @@ |
|||
Hamarsoft (R) 86BUGS list, supplemental programs. |
|||
The 86BUGSxy archive should contain the following files: |
|||
|
|||
- 86BUGS.HLP Microsoft QuickHelp hypertext version of the list. |
|||
- 86LISTnn.LST The text version of the 86BUGS list. |
|||
- FILE_ID.DIZ An upload description for Bulletin Boards. |
|||
- iAPX122.ZIP Testing software archive from Chris Lueders, Germany. |
|||
- INFO.EXE CPU info program with various information regarding your |
|||
processor. |
|||
- STAT.EXE Pentium Processor Pipeline & features performance monitor. |
|||
|
|||
Both STAT and INFO are provided by Christian Ludloff. These programs are |
|||
based on his article in the german C't Magazine of November 1994 (issue 11). |
|||
|
|||
iAPX122 is a testing program provided by Chris Lueders. It tests for some |
|||
of the bugs mentioned in the 86BUGS list. |
|||
|
|||
All programs are provided with this list as a service from Hamarsoft to the |
|||
readers of the 86BUGS list. Hamarsoft does not accept any liability for |
|||
these programs whatsoever. |
|||
|
|||
The 86BUGS list is also distributed with Ralf Brown's Interrupt List. |
|||
|
|||
[86BUGS.HLP has been omitted for space reasons, and the other files except |
|||
for 86LISTnn.LST are located in INTERrrD.ZIP. 86LISTnn.LST has been |
|||
renamed to 86BUGS.LST for compatibility with hypertext conversion |
|||
programs expecting that name.] |
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
Binary file not shown.
@ -0,0 +1,38 @@ |
|||
COMBINE.COM v2.10 |
|||
by Ralf Brown |
|||
22 March 1998 |
|||
|
|||
COMBINE.COM will concatenate all of the partial files in the interrupt |
|||
list distribution archives into a single master file for interrupts and |
|||
a single master file for I/O ports, which is required by some viewers |
|||
and hypertext conversion programs. |
|||
|
|||
To use COMBINE, just change to the directory into which you extracted |
|||
the distribution archives, and type |
|||
|
|||
COMBINE {dir} (for interrupts) |
|||
and then |
|||
COMBINE -p {dir} (for ports) |
|||
|
|||
where {dir} is the name of the directory in which you want the combined |
|||
list to be stored (typically, you will type "COMBINE ." to store the |
|||
result in the same directory as the individual sections). If there is |
|||
not enough free disk space to hold both the individual sections and the |
|||
combined list, you will be told and given the option of running COMBINE |
|||
again with an option to tell it that it should delete each section as |
|||
it is added to the combined file: |
|||
|
|||
COMBINE -d {dir} |
|||
|
|||
COMBINE will skip any missing sections of the interrupt list; if at |
|||
least one section other than INTERRUP.A (PORTS.A with -p) is present, |
|||
it will stop as soon as the last section has been processed (otherwise, |
|||
it will continue trying all names through INTERRUP.Z/PORTS.Z). On |
|||
completion, it sets the combined file's timestamp to be the same as |
|||
that of the last of the individual sections. |
|||
|
|||
System Requirements: |
|||
DOS 2.0+ or a DOS compatibility box |
|||
64K available RAM |
|||
a copy of the interrupt list :-) |
|||
sufficient free disk space (~360K with the -d option) |
@ -0,0 +1,10 @@ |
|||
x86/MS-DOS Interrupt List, Release 61 |
|||
A Comprehensive listing of interrupt |
|||
calls, both documented and undocumented, |
|||
plus ports/memory/CMOS/etc. Over 9600 |
|||
entries (plus 5400 tables) in INTER61A |
|||
to INTER61D, utility programs and |
|||
viewers in INTER61E, and hypertext |
|||
conversion progs & WinHelp utilities in |
|||
INTER60F. Over 8 million bytes of |
|||
text! Released 2000/07/16. |
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,293 @@ |
|||
INTPRINT v3.11 |
|||
by Ralf Brown |
|||
|
|||
The INTPRINT program is hereby donated to the public domain, with the sincere |
|||
hope that proper credit will be retained in all copies and derivatives. |
|||
|
|||
------------------------------------------------------------------------------ |
|||
|
|||
INTPRINT.COM is a simple formatter for the interrupt list, both |
|||
INTERRUP.LST and the other *.LST files. Use this program to print only |
|||
a portion of the list, prevent widow lines at the beginning of a |
|||
function call, number the pages, boldface key portions, center the |
|||
printout, or create a summary of the function calls. After formatting |
|||
is complete, the total number of pages is displayed on the screen. |
|||
|
|||
Usage: |
|||
intprint [options] intlist [[>|>>]outfile] |
|||
|
|||
where the options are: |
|||
-b boldface the title lines, Return:, and Notes: by overprinting |
|||
-B boldface by sending printer control sequences |
|||
|
|||
-d (duplex) print even/odd pages with different margins; suitable |
|||
for binding the printout. |
|||
|
|||
-e assume printer is in elite mode (96 characters per line), and |
|||
indent the output eight spaces to center the printout. This |
|||
is primarily for the default printer, as other printers may |
|||
force the equivalent or override this option. |
|||
|
|||
-ffile create a file containing only the data structures described |
|||
in the interrupt list. |
|||
NOTE: you must put the filename immediately after the 'f'; no |
|||
blanks are allowed. |
|||
|
|||
-Ffile filter the listing based on include and exclude strings |
|||
in 'file'. Only entries whose headers match none of the |
|||
exclude strings and at least one of the include strings |
|||
will be processed. All others will be skipped. |
|||
NOTE: you must put the filename immediately after the 'F'; no |
|||
blanks are allowed. |
|||
|
|||
-H print a heading on each page indicating which interrupts |
|||
are listed on the page |
|||
|
|||
-iN indent the output N spaces. The output device is assumed to be |
|||
at least 80+N characters wide. |
|||
NOTE: you must put the number immediately after the 'i'; no |
|||
blanks are allowed. |
|||
|
|||
-I assume the printer is capable of producing IBM character |
|||
graphics. Printers other than "default" may force this option. |
|||
|
|||
-k keep original divider lines instead of replacing them |
|||
with all dashes. |
|||
|
|||
-lN print N lines per pages, overriding the printer-specific |
|||
default. Use 0 to omit page breaks (in this case, the |
|||
reported number of pages and -r page restriction may be |
|||
incorrect unless you also use -L); this can be useful if |
|||
you only want to filter the list before processing it |
|||
further. |
|||
|
|||
-LN assume N lines on a page. If this is more than the number of |
|||
lines to print on each page, INTPRINT will use line feeds to |
|||
advance to the next page instead of form feeds. |
|||
|
|||
-m specify that the interrupt list is in multiple parts beginning |
|||
with the named file. INTPRINT will increment the last |
|||
character of the name to get the next filename, and continue |
|||
until it is unable to open the file thus selected. |
|||
|
|||
-nN assume N pages have already been printed, and start numbering |
|||
at N+1. This option allows you to create a properly-numbered |
|||
printout even if there is not enough disk space to concatenate |
|||
the parts of the interrupt list or hold a complete output file. |
|||
See the examples below. |
|||
NOTE: you must put the number immediately after the 'n'; no |
|||
blanks are allowed. |
|||
|
|||
-p print the page number at the bottom center of each page |
|||
|
|||
-Pname use control codes for the specified printer (-P? lists the |
|||
supported printers). The printer name may be given in either |
|||
case and abbreviated to a unique prefix; use either dashes or |
|||
underscores in place of blanks in the printer name. |
|||
|
|||
-rN:M print only pages N through M. The entire input is processed |
|||
for use in -s and -f summaries (see below) even though only |
|||
a portion is formatted for printing. If filtering is enabled, |
|||
(see -F), page numbers are based on entries selected by the |
|||
filter file. |
|||
NOTE: you must put the page numbers immediately after the 'r'; |
|||
no blanks are allowed. When using -l0 together with -r, |
|||
you must specify the appropriate page length with -L so |
|||
that page numbers can be computed correctly. |
|||
|
|||
-sfile create a one-line-per-function summary and write it to "file" |
|||
if -n is also given, the summary will be appended to "file", |
|||
allowing a properly numbered summary file to be created even if |
|||
there is not enough disk space to concatenate the parts of the |
|||
list. See the examples below. If -p is also given, page |
|||
numbers will be included in the summary. If -V is also given, |
|||
byte offsets for use by INTERVUE will be included. |
|||
NOTE: you must put the filename immediately after the 's'; no |
|||
blanks are allowed. |
|||
|
|||
-tN select typeface N for the chosen printer (currently supported |
|||
only for the HP). |
|||
|
|||
-Tfile create a one-line-per-table summary and write it to "file" |
|||
if -n is also given, the summary will be appended to the named |
|||
file. If -p is also given, page numbers will be included in |
|||
the summary. If -V is also given, byte offsets for use by |
|||
INTERVUE will be included. |
|||
NOTE: you must put the filename immediately after the 'T'; no |
|||
blanks are allowed. |
|||
|
|||
-V indicate that the summary file is intended for use by INTERVUE. |
|||
INTPRINT will output byte offsets that allow INTERVUE to jump |
|||
directly to an entry. Also forces -I. |
|||
|
|||
-wN (widow lines) search N lines from the end of the page for a |
|||
good place to break. The default is eight lines; the valid |
|||
range is from 3 to one-half of the page length. |
|||
NOTE: you must put the number immediately after the 'w'; no |
|||
blanks are allowed. |
|||
|
|||
-x include Index: lines in formatted listing. These lines are |
|||
are excluded by default because they are intended primarily |
|||
for use by hypertext converters. |
|||
|
|||
Options may not be merged; "-ep" is illegal and the "p" will be ignored. |
|||
Use "-e -p" instead. |
|||
|
|||
The formatted result of the input file is sent to the specified output file, |
|||
or to standard output if no output file is given. Standard output may be |
|||
redirected using the usual Unix or MSDOS redirection characters > or >>. If |
|||
you only want a summary file or data formats file, send or redirect the |
|||
output to the null device ("NUL" under MSDOS, "/dev/null" under Unix). |
|||
|
|||
|
|||
FILTER FILE: |
|||
------------ |
|||
|
|||
The filter file specified with -F is a simple text file containing |
|||
include lines, exclude lines, and comment lines. Both 'include' and |
|||
'exclude' lines may be based on either a category code or a substring |
|||
of the entry's title line. Comment lines start with a hash mark (#) in |
|||
the first column and are ignored. The other valid command characters |
|||
in the first column are: |
|||
|
|||
> unconditionally include any entry with the specified category letter |
|||
< unconditionally exclude any entry with the specified category letter |
|||
+ include entries containing the specified string, unless unconditionally |
|||
excluded |
|||
- exclude entries containing the specified string, unless unconditionally |
|||
included |
|||
i include entries with the given category letter unless specifically |
|||
excluded by a '-' line |
|||
o override '-' line and include entry anyway if it has the given |
|||
category letter |
|||
|
|||
Note that any category letters or selection strings must immediately |
|||
follow the command character. All spaces on '+' include and '-' exclude |
|||
lines are significant. Thus, |
|||
+ DOS |
|||
will only match entries containing the four-letter sequence " DOS", |
|||
while |
|||
+DOS |
|||
will match any entries containing the sequence "DOS", whether or not it |
|||
is preceded by a blank. |
|||
|
|||
If a filter file is specified, only entries whose title lines contain at |
|||
least one of the '+' include lines (ignoring uppercase/lowercase |
|||
distinctions), none of the '-' exclude lines, or whose category codes |
|||
have been selected by other include/exclude lines, are processed. Thus, |
|||
a filter file must contain at least one include line, or INTPRINT will |
|||
skip all interrupt entries and print only the non-interrupt text in the |
|||
file. |
|||
|
|||
----cut here---- |
|||
# SAMPLE1.FLT |
|||
# Sample filtering file number 1, using only title includes/excludes. |
|||
# Extract MS-DOS calls, but exclude DR-DOS-specific, DOS-extender, and |
|||
# non-DOS networking calls. |
|||
# Note: a few extraneous calls are still included. |
|||
# |
|||
+ DOS |
|||
-DR DOS |
|||
-DR-DOS |
|||
-DR Multiuser DOS |
|||
-Concurrent DOS |
|||
-DOS/16M |
|||
-DOS4GX |
|||
-DOS/4G |
|||
-extender |
|||
-LAN Manager |
|||
-DECnet DOS |
|||
# |
|||
# end of SAMPLE1.FLT |
|||
----cut here---- |
|||
|
|||
----cut here---- |
|||
# SAMPLE2.FLT |
|||
# Sample filtering file number 2, using category includes/excludes. Extract |
|||
# MS-DOS and DR-DOS calls, but exclude OS/2 and other operating systems. |
|||
# |
|||
# unconditionally include the DOS category |
|||
>D |
|||
# include 'other OSes' category, but remove OS/2, VMiX, PC-MOS, etc. |
|||
iO |
|||
-OS/2 |
|||
-VMiX |
|||
-PC-MOS |
|||
-STARLITE |
|||
-WinDOS |
|||
-Acorn BBC |
|||
-Linux DOSEMU |
|||
# |
|||
# end of SAMPLE2.FLT |
|||
----cut here---- |
|||
|
|||
------------------------------------------------------------------------------ |
|||
|
|||
EXAMPLES: |
|||
--------- |
|||
|
|||
Print the interrupt list with page numbers, and create a summary file, |
|||
without concatenating INTERRUP.A, INTERRUP.B, and INTERRUP.C: |
|||
|
|||
A> intprint -sb:interrup.sum -p interrup.a >prn |
|||
146 pages [screen output from INTPRINT] |
|||
A> intprint -sb:interrup.sum -p -n146 interrup.b prn |
|||
285 pages [screen output from INTPRINT] |
|||
A> intprint -sb:interrup.sum -p -n285 interrup.c >prn |
|||
403 pages [screen output from INTPRINT] |
|||
|
|||
or, more easily: |
|||
A> intprint -sb:interrup.sum -m -p interrup.a prn |
|||
1587 pages [screen output from INTPRINT] |
|||
|
|||
Create only a summary file: |
|||
|
|||
C> intprint -sinterrupt.sum interrup.lst nul |
|||
|
|||
Create a listing of the tables in the interrupt list: |
|||
|
|||
C> intprint -Tinterrup.tbl interrup.lst nul |
|||
|
|||
Print only those entries containing the string "DOS", except |
|||
those containing the string "DR-DOS" |
|||
|
|||
C> type dos |
|||
+DOS |
|||
-DR-DOS |
|||
|
|||
C> intprint -Fdos interrup.lst nul |
|||
|
|||
|
|||
Print the interrupt list on an Epson FX80, using 54 lines per page and |
|||
omitting both page numbers and summary: |
|||
|
|||
C> intprint -Pepson -l54 interrup.lst >prn |
|||
|
|||
Print the interrupt list using 120 lines on every 132-line page (using |
|||
superscript mode, for example), and make divider lines using IBM |
|||
character graphics: |
|||
|
|||
C> intprint -I -l120 -L132 interrup.lst >prn |
|||
|
|||
Print only pages 123 through 127, assuming that 106 pages are contained |
|||
in the first section of the list: |
|||
|
|||
C> intprint -n106 -r123:127 interrup.b prn |
|||
|
|||
Print using HP PCL4/5 escape sequences, numbering pages, from file |
|||
"interrup.lst" to file "interrup.pcl", at the default 69 lines per |
|||
page, using form-feeds: |
|||
|
|||
C> intprint -Php -p interrup.lst >interrup.pcl |
|||
1587 pages [screen output from INTPRINT] |
|||
|
|||
------------------------------------------------------------------------------ |
|||
|
|||
PORTABILITY: |
|||
------------ |
|||
|
|||
INTPRINT.C contains the source code for INTPRINT, for those people who |
|||
are using the interrupt list on a machine which does not run MSDOS. |
|||
This code has been tested with Turbo C v2.0, Borland C++ v3.1, and Mach |
|||
(BSD 4.3 Unix) "cc" and "gcc". |
|||
|
File diff suppressed because it is too large
Binary file not shown.
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,21 @@ |
|||
This is the fourth of six archives containing the x86/MSDOS Interrupt List, |
|||
release 61. It should contain: |
|||
|
|||
README.4 |
|||
INTERRUP.O |
|||
INTERRUP.P |
|||
INTERRUP.Q |
|||
INTERRUP.R |
|||
86BUGS.LST |
|||
BIBLIO.LST |
|||
CMOS.LST |
|||
I2C.LST |
|||
OPCODES.LST |
|||
PORTS.A |
|||
PORTS.B |
|||
PORTS.C |
|||
86BUGS.DOC |
|||
COMBINE.COM |
|||
COMBINE.DOC |
|||
INTPRINT.DOC |
|||
PGP-SIGS.ZIP |
Binary file not shown.
@ -0,0 +1,494 @@ |
|||
; COMBINE.ASM Interrupt List combiner |
|||
; by Ralf Brown |
|||
; last edit: 22mar98 |
|||
|
|||
NAME COMBINE |
|||
TITLE Combine Interrupt List sections |
|||
|
|||
; declare all the segments in the order in which they are to appear in the |
|||
; executable |
|||
CODE SEGMENT 'CODE' |
|||
CODE ENDS |
|||
STACKSEG SEGMENT PUBLIC WORD 'STACK' |
|||
STACKSEG ENDS |
|||
BUFFERSEG SEGMENT PUBLIC WORD 'DATA' |
|||
BUFFERSEG ENDS |
|||
; |
|||
DGROUP GROUP CODE,STACKSEG,BUFFERSEG |
|||
|
|||
;;------------------------------------------------------------------------ |
|||
|
|||
FFBLK struc |
|||
ff_reserved db 15h dup (?) |
|||
ff_attrib db ? |
|||
ff_ftime dw ? |
|||
ff_fdate dw ? |
|||
ff_fsize dd ? |
|||
ff_fname db 13 dup (?) |
|||
FFBLK ends |
|||
|
|||
;;------------------------------------------------------------------------ |
|||
|
|||
CODE SEGMENT 'CODE' |
|||
ORG 100h ; this is a .COM file |
|||
ASSUME CS:DGROUP,DS:DGROUP,ES:DGROUP,SS:DGROUP |
|||
|
|||
combine: |
|||
jmp near ptr main |
|||
|
|||
banner db 13,"COMBINE v2.10",9,"Ralf Brown 1996,1998",13,10,"$",26 |
|||
usage_msg db "Usage:",9,"COMBINE [options] dest-dir",13,10 |
|||
db 9,"where {dest-dir} is the directory in which to place",13,10 |
|||
db 9," the combined list ('.' for the current directory)",13,10 |
|||
db 10 |
|||
db 9,"options:",13,10 |
|||
db 9,9,"-d",9,"delete sections after copying",13,10 |
|||
db 9,9,"-p",9,"combine PORTS.LST instead of INTERRUP.LST",13,10 |
|||
db 10 |
|||
db "All sections of the interrupt/ports list must be in the current directory." |
|||
db "$" |
|||
|
|||
bad_dos_msg db "Need DOS 2.0+$" |
|||
bad_drive_msg db "Invalid destination drive$" |
|||
no_mem_msg db "Insufficient memory$" |
|||
no_files_msg db "No section files found!$" |
|||
readerr_msg db "Read Error$" |
|||
writeerr_msg db "Write Error$" |
|||
diskfull_msg db "Disk full? while writing$" |
|||
no_disk_msg db "Out of space on destination drive",13,10,"$" |
|||
retry_msg db "Try again with -d to delete while copying$" |
|||
|
|||
cant_create_msg db "Check directory name -- unable to create " |
|||
combined_file db "INTERRUP.LST",0,"$" |
|||
combined_file2 db "PORTS.LST",0 |
|||
combined_file2_len equ $-combined_file2 |
|||
section_file1 db "INTERRUP.A",0,"$" |
|||
section_letter equ section_file1+9 |
|||
section_file2 db " PORTS" |
|||
section_file2_len equ $-section_file2 |
|||
section_file2_ofs equ 3 |
|||
missing_msg db "unavailable (skipped)" |
|||
crlf db 13,10,"$" |
|||
section_heading1 db "Interrupt List, part " |
|||
section_hdr_len1 equ $-section_heading1 |
|||
section_heading2 db "Ports List, part " |
|||
section_hdr_len2 equ $-section_heading2 |
|||
complete_msg db "Done.$" |
|||
|
|||
; |
|||
; flags affecting operation |
|||
; |
|||
del_after_copy db 0 |
|||
section_file dw offset section_file1 |
|||
section_heading dw offset section_heading1 |
|||
section_hdr_len dw section_hdr_len1 |
|||
|
|||
; |
|||
; data needed while processing |
|||
; |
|||
filehandle equ di ; output file's handle |
|||
numsections db 26 |
|||
dest_drive db 0 |
|||
nondefault_dest db 0 |
|||
ftime dw 0 |
|||
fdate dw 0 |
|||
filesize_lo dw 0 |
|||
filesize_hi equ bp |
|||
|
|||
; (since we don't use disk_buffer until after FindFirst is no longer needed, |
|||
; save memory by overlaying the two) |
|||
FindFirst equ DGROUP:disk_buffer |
|||
|
|||
;;------------------------------------------------------------------------ |
|||
|
|||
write_string: |
|||
mov ah,9 |
|||
int 21h |
|||
ret |
|||
|
|||
;;------------------------------------------------------------------------ |
|||
|
|||
skip_whitespace: |
|||
lodsb |
|||
cmp al,' ' |
|||
je skip_whitespace |
|||
cmp al,9 |
|||
je skip_whitespace |
|||
dec si ; unget the last character |
|||
; set ZF to indicate whether we got to end of cmdline |
|||
cmp al,0Dh |
|||
ret |
|||
|
|||
;;------------------------------------------------------------------------ |
|||
|
|||
get_destination_file: |
|||
mov bx,si ; remember start of destination name |
|||
get_dest_file_loop: |
|||
lodsb |
|||
cmp al,' ' |
|||
je got_dest_end |
|||
cmp al,9 |
|||
je got_dest_end |
|||
cmp al,0Dh |
|||
jne get_dest_file_loop |
|||
got_dest_end: |
|||
dec si ; unget last character |
|||
mov di,si |
|||
mov al,[si-1] ; check end of path -- is it terminated |
|||
cmp al,'\' ; by a slash or backslash? |
|||
je dest_has_slash |
|||
cmp al,'/' |
|||
je dest_has_slash |
|||
cmp al,':' |
|||
je dest_has_slash |
|||
mov al,'\' |
|||
stosb |
|||
dest_has_slash: |
|||
mov si,offset combined_file |
|||
dest_copy_loop: |
|||
lodsb |
|||
stosb |
|||
cmp al,0 |
|||
jne dest_copy_loop |
|||
; OK, now open the destination file |
|||
; (BX is still pointing at start of pathname) |
|||
cmp byte ptr [bx+1],':' |
|||
jne got_dest_drive |
|||
mov al,[bx] |
|||
and al,0DFh ; force to uppercase |
|||
sub al,'A' |
|||
jb got_dest_drive |
|||
cmp al,dest_drive |
|||
je got_dest_drive |
|||
mov dest_drive,al |
|||
mov nondefault_dest,al |
|||
got_dest_drive: |
|||
mov ah,3Ch ; create the output file |
|||
xor cx,cx ; no special file attributes |
|||
mov dx,bx |
|||
int 21h |
|||
mov dx,offset cant_create_msg |
|||
jc exit_with_err_2 |
|||
mov filehandle,ax |
|||
ret |
|||
|
|||
;;------------------------------------------------------------------------ |
|||
|
|||
check_total_size: |
|||
mov byte ptr section_letter,'A'-1 |
|||
mov ah,1Ah ; set DTA |
|||
mov dx,offset FindFirst |
|||
int 21h |
|||
xor si,si ; keep track of # of sections found |
|||
check_size_loop: |
|||
inc byte ptr section_letter |
|||
cmp byte ptr section_letter,'Z' |
|||
ja short get_free_space |
|||
mov ah,4Eh ; find first |
|||
mov cx,001Fh ; ...regardless of attribute |
|||
mov dx,section_file |
|||
int 21h |
|||
jc check_size_loop |
|||
inc si ; another section found |
|||
mov ax,FindFirst.ff_ftime |
|||
mov ftime,ax |
|||
mov ax,FindFirst.ff_fdate |
|||
mov fdate,ax |
|||
mov ax,word ptr FindFirst.ff_fsize |
|||
mov dx,word ptr FindFirst.ff_fsize+2 |
|||
cmp del_after_copy,0 |
|||
je count_full_size |
|||
cmp nondefault_dest,0 |
|||
jnz count_full_size |
|||
cmp dx,filesize_hi |
|||
jb check_size_loop |
|||
ja check_size_bigger |
|||
cmp ax,filesize_lo |
|||
jbe check_size_loop |
|||
check_size_bigger: |
|||
mov filesize_lo,ax |
|||
mov filesize_hi,dx |
|||
jmp check_size_loop |
|||
|
|||
count_full_size: |
|||
add filesize_lo,ax |
|||
adc filesize_hi,dx |
|||
jmp check_size_loop |
|||
|
|||
get_free_space: |
|||
test si,si ; check number of sections found |
|||
mov dx,offset no_files_msg |
|||
jz short exit_with_err_2 |
|||
mov dl,dest_drive |
|||
inc dx |
|||
mov ah,36h ; get free disk space |
|||
int 21h |
|||
cmp ax,0FFFFh |
|||
jne got_free_space |
|||
mov dx,offset bad_drive_msg |
|||
exit_with_err_2: |
|||
jmp near ptr exit_with_errmsg |
|||
got_free_space: |
|||
mul cx ; DX:AX <- AX*CX |
|||
mov cx,dx ; store high half of intermediate |
|||
mul bx ; DX:AX <- low(AX*CX)*BX |
|||
xchg ax,bx ; store low half of second interm. |
|||
xchg cx,dx ; store high half of second interm. |
|||
mul dx ; DX:AX <- high(AX*CX)*BX |
|||
xchg ax,bx ; DX:BX:0000h + CX:AX = result |
|||
add bx,cx |
|||
adc dx,0 ; DX:BX:AX = AX*BX*CX = free space |
|||
jnz plenty_free_space ; >4G free? |
|||
sub ax,filesize_lo |
|||
sbb bx,filesize_hi |
|||
jnb plenty_free_space |
|||
not_enough_space: |
|||
mov dx,offset no_disk_msg |
|||
call write_string |
|||
cmp nondefault_dest,0 |
|||
jnz size_check_failed |
|||
cmp del_after_copy,0 |
|||
jne size_check_failed |
|||
mov dx,offset retry_msg |
|||
call write_string |
|||
size_check_failed: |
|||
mov al,2 |
|||
jmp exit |
|||
plenty_free_space: |
|||
ret |
|||
|
|||
;;------------------------------------------------------------------------ |
|||
|
|||
check_section_header: |
|||
push si |
|||
push di |
|||
mov si,offset DGROUP:disk_buffer |
|||
mov di,section_heading |
|||
mov cx,section_hdr_len |
|||
or cx,cx |
|||
rep cmpsb |
|||
jnz not_section_heading |
|||
scan_curr_section: |
|||
lodsb |
|||
cmp al,' ' ; scan for the " of " |
|||
jne scan_curr_section |
|||
add si,3 ; skip "of " |
|||
xor cl,cl |
|||
num_sections_loop: |
|||
lodsb |
|||
sub al,'0' |
|||
jb num_sections_done |
|||
cmp al,9 |
|||
ja num_sections_done |
|||
mov ch,al |
|||
mov al,10 |
|||
mul cl |
|||
mov cl,al |
|||
add cl,ch |
|||
jmp num_sections_loop |
|||
num_sections_done: |
|||
mov numsections,cl |
|||
got_num_sections: |
|||
not_section_heading: |
|||
pop di |
|||
pop si |
|||
ret |
|||
|
|||
;;------------------------------------------------------------------------ |
|||
|
|||
; in: SI = file handle for current section |
|||
copy_section: |
|||
mov ax,4201h |
|||
xor cx,cx |
|||
xor dx,dx |
|||
mov bx,filehandle |
|||
int 21h |
|||
mov filesize_lo,ax |
|||
mov filesize_hi,dx |
|||
copy_section_loop: |
|||
mov ah,3Fh |
|||
mov bx,si |
|||
mov cx,disk_buffer_end - disk_buffer |
|||
mov dx,offset DGROUP:disk_buffer |
|||
int 21h |
|||
jc copy_read_error |
|||
mov cx,ax ; write same number of bytes read |
|||
mov ah,40h |
|||
;; mov dx,offset DGROUP:disk_buffer |
|||
mov bx,filehandle |
|||
int 21h |
|||
mov dx,offset writeerr_msg |
|||
jc copy_error |
|||
mov dx,offset diskfull_msg |
|||
cmp ax,cx |
|||
jb copy_error |
|||
; check for section header at start of buffer, and extract number |
|||
; of sections from it |
|||
push cx |
|||
call check_section_header |
|||
pop ax |
|||
cmp ax,disk_buffer_end - disk_buffer ; continue until only partial |
|||
je copy_section_loop ; buffer read (EOF hit) |
|||
ret |
|||
|
|||
copy_read_error: |
|||
mov dx,offset readerr_msg |
|||
copy_error: |
|||
; truncate output to size before section was started |
|||
push dx ; store error message |
|||
mov ax,4200h |
|||
mov cx,filesize_hi |
|||
mov dx,filesize_lo |
|||
mov bx,filehandle |
|||
int 21h |
|||
mov ah,40h |
|||
xor cx,cx ; write zero bytes to truncate |
|||
int 21h |
|||
pop dx ; get back error message |
|||
;; fall through to exit_with_errmsg ;; |
|||
|
|||
;;------------------------------------------------------------------------ |
|||
|
|||
exit_with_errmsg: |
|||
call write_string |
|||
; exit with errorlevel 1 |
|||
mov al,01h |
|||
jmp near ptr exit |
|||
|
|||
main: |
|||
ASSUME CS:DGROUP, DS:DGROUP, ES:DGROUP, SS:DGROUP |
|||
mov dx,offset banner |
|||
call write_string |
|||
; relocate the stack |
|||
mov sp,offset DGROUP:stackbot |
|||
; ensure that we have enough memory |
|||
mov ax,cs |
|||
add ax,1000h ; require 64K memory |
|||
cmp ax,ds:[0002h] ; is end of mem at least 64K above CS? |
|||
mov dx,offset no_mem_msg |
|||
ja exit_with_errmsg |
|||
mov si,81h ; point at start of cmdline |
|||
mov bl,[si-1] ; get length of cmdline |
|||
mov bh,0 |
|||
mov byte ptr [bx+si],0Dh ; ensure cmdline properly terminated |
|||
cld |
|||
call skip_whitespace |
|||
mov dx,offset usage_msg |
|||
jz exit_with_errmsg |
|||
get_cmdline_switches: |
|||
call skip_whitespace |
|||
jz not_a_switch |
|||
cmp al,'-' ; is it a switch? |
|||
jne not_a_switch |
|||
lodsb ; get the switch character |
|||
lodsb ; get the switch itself |
|||
and al,0DFh ; force to uppercase |
|||
cmp al,'P' |
|||
je want_ports |
|||
cmp al,'D' |
|||
;; mov dx,offset usage_msg |
|||
jne exit_with_errmsg |
|||
mov del_after_copy,1 |
|||
jmp get_cmdline_switches |
|||
want_ports: |
|||
jmp config_for_ports |
|||
not_a_switch: |
|||
mov ah,19h ; get default drive |
|||
int 21h |
|||
mov dest_drive,al |
|||
mov ah,30h |
|||
int 21h |
|||
cmp al,2 |
|||
mov dx,offset bad_dos_msg |
|||
jb exit_with_errmsg |
|||
call get_destination_file |
|||
xor filesize_hi,filesize_hi |
|||
call check_total_size |
|||
; |
|||
; OK, all the preliminaries are done now, so go concatenate the |
|||
; sections of the interrupt list |
|||
; |
|||
mov al,'A'-1 |
|||
concat_loop: |
|||
inc ax |
|||
mov section_letter,al |
|||
sub al,'A'-1 |
|||
cmp al,numsections |
|||
ja concat_done |
|||
mov dx,section_file |
|||
call write_string |
|||
mov ax,3D00h |
|||
int 21h |
|||
mov dx,offset missing_msg |
|||
jc concat_loop_end |
|||
mov si,ax |
|||
call copy_section |
|||
mov bx,si ; BX <- section file's handle |
|||
mov ah,3Eh ; DOS function: close file handle |
|||
int 21h |
|||
cmp del_after_copy,0 |
|||
je concat_no_del |
|||
mov ah,41h ; DOS function: delete file |
|||
mov dx,section_file |
|||
int 21h |
|||
concat_no_del: |
|||
mov dx,offset crlf |
|||
concat_loop_end: |
|||
call write_string |
|||
mov al,section_letter |
|||
jmp concat_loop |
|||
|
|||
concat_done: |
|||
mov dx,offset complete_msg |
|||
call write_string |
|||
mov al,00h ; successful completion |
|||
exit: |
|||
push ax |
|||
mov dx,offset crlf |
|||
call write_string |
|||
mov ax,5701h ; (set file time & date) |
|||
mov bx,filehandle |
|||
mov cx,ftime ; set timestamp of combined file to |
|||
mov dx,fdate ; be that of the last of the sections |
|||
int 21h |
|||
mov ah,3Eh ; DOS function: close file handle |
|||
int 21h |
|||
pop ax |
|||
mov ah,4Ch |
|||
int 21h |
|||
|
|||
config_for_ports: |
|||
mov section_heading,offset section_heading2 |
|||
mov section_hdr_len,section_hdr_len2 |
|||
push di |
|||
push si |
|||
push cx |
|||
;; copy combined_file2 over combined_file |
|||
mov cx,combined_file2_len |
|||
mov si,offset combined_file2 |
|||
mov di,offset combined_file |
|||
rep movsb |
|||
;; copy section_file2 over section_file1 |
|||
mov cx,section_file2_len |
|||
mov si,offset section_file2 |
|||
mov di,offset section_file1 |
|||
rep movsb |
|||
pop cx |
|||
pop si |
|||
pop di |
|||
add section_file,section_file2_ofs |
|||
jmp get_cmdline_switches |
|||
|
|||
CODE ENDS |
|||
|
|||
STACKSEG SEGMENT PUBLIC WORD 'STACK' |
|||
stacktop dw 160 dup (?) |
|||
stackbot label byte |
|||
STACKSEG ENDS |
|||
|
|||
BUFFERSEG SEGMENT PUBLIC WORD 'DATA' |
|||
disk_buffer db 62*1024 dup (?) |
|||
disk_buffer_end label byte |
|||
BUFFERSEG ENDS |
|||
|
|||
END combine |
@ -0,0 +1,10 @@ |
|||
x86/MS-DOS Interrupt List, Release 61 |
|||
A Comprehensive listing of interrupt |
|||
calls, both documented and undocumented, |
|||
plus ports/memory/CMOS/etc. Over 9600 |
|||
entries (plus 5400 tables) in INTER61A |
|||
to INTER61D, utility programs and |
|||
viewers in INTER61E, and hypertext |
|||
conversion progs & WinHelp utilities in |
|||
INTER60F. Over 8 million bytes of |
|||
text! Released 2000/07/16. |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,723 @@ |
|||
/*
|
|||
* File: int.c |
|||
* |
|||
* Synopsis: PC interrupt caller, memory R/W, I/O port R/W |
|||
* |
|||
* System: MSDOS - Turbo C or Borland C (other compilers need some work) |
|||
* |
|||
* A utility for PC systems programmers to: |
|||
* - perform and visualise the results of interrupt calls |
|||
* - use buffers (inc files) to set register pairs |
|||
* - view the interrupt vector table |
|||
* - read & write I/O ports |
|||
* |
|||
* NB: This utility must be used with EXTREME CARE. Using bad interrupt and/or |
|||
* I/O calls can destroy data on your memory/disk(s) and might crash your |
|||
* machine. |
|||
* |
|||
* Compatible with int.c ditributed with Ralf Brown's interrupt lists |
|||
* Comments/suggestions welcome on the email address below. |
|||
* |
|||
* |
|||
* Copyright (c) 1992-1994 Angelo Haritsis <ah@doc.ic.ac.uk> |
|||
* |
|||
* Redistribution and use in source and binary forms are permitted provided |
|||
* that the above copyright notice and this paragraph are duplicated in all |
|||
* such forms and that any documentation, advertising materials, and other |
|||
* materials related to such distribution and use acknowledge that the |
|||
* software was developed by Angelo Haritsis. |
|||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR |
|||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED |
|||
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
|||
* |
|||
* TODO: |
|||
* > -fbuf filename (write mem with vals from a file) |
|||
*/ |
|||
|
|||
#ifndef lint |
|||
static char rcsid[] = "$Header: E:/SRC/MISC\RCS\int.c 1.2 1994/04/11 20:11:36 ah Exp ah $"; |
|||
#endif |
|||
|
|||
#include <stdio.h> |
|||
#include <io.h> |
|||
#include <fcntl.h> |
|||
#include <stdlib.h> |
|||
#include <string.h> |
|||
#include <assert.h> |
|||
#include <ctype.h> |
|||
#include <dos.h> |
|||
|
|||
#define PROG "int" |
|||
#define VERSION "1.0" |
|||
#define NOTREACHED 0 |
|||
|
|||
|
|||
#define PARSE_JUSTARGS 0x01 |
|||
#define PARSE_NOACTION 0x02 |
|||
|
|||
/*
|
|||
* Types |
|||
*/ |
|||
typedef int (*fun_ptr) (char **, int *); |
|||
|
|||
typedef struct s_opt { |
|||
char *opts; /* option name */ |
|||
int size; /* bytes for the ptr element (1, 2, 4);
|
|||
* 0 means execute the function following |
|||
* parsing (argv, &opt_now) |
|||
*/ |
|||
void *ptr; /* pointer to the data element to be loaded or a function if size = 0 */ |
|||
} OPTION; |
|||
|
|||
typedef struct s_dbuff { |
|||
unsigned *ptr_to_seg; /* the area where the segment is held */ |
|||
unsigned *ptr_to_off; /* the area where the offset is held */ |
|||
void far *addr; /* the address (when explicitly given) */ |
|||
char logo[20]; |
|||
#define DBUFF_HEX 0x01 |
|||
#define DBUFF_ASC 0x02 |
|||
#define DBUFF_BIN 0x04 |
|||
int mode; /* display mode */ |
|||
long bytes; /* # of bytes to show */ |
|||
} DBUFFER; |
|||
|
|||
typedef struct s_doserr { |
|||
int errno; |
|||
int class; |
|||
int action; |
|||
int locus; |
|||
} DOS_ERROR; |
|||
|
|||
/*
|
|||
* Globals |
|||
*/ |
|||
char switchchar[] = "-+/"; |
|||
|
|||
char usage[] = |
|||
"usage: " PROG " [-h] [-q] [int=# | int# | -int #] [[-]reg[=]val] ...\n" |
|||
" [-buf sreg:reg=\"str\"]\n" |
|||
" [-d[a|b|hx] sreg:reg[:#bytes]] [-d[a|hx] faraddr[:#bytes]]\n" |
|||
" [-divt int#-int#]]\n" |
|||
" [-in[w] port#] [-out[w] port#,val]\n" |
|||
" str: printf fmt (%#s allowed to setup buffers)\n"; |
|||
|
|||
char help[] = |
|||
" eg.\n" |
|||
" o Interrupts (+ buffer setup)\n" |
|||
" " PROG " 0x10 -ax 0x12 same as: int int=0x10 ax=0x12 (set VGA graphics mode)\n" |
|||
" " PROG " 0x10 ah=0x10 al=1 bh=9 (set VGA border color; use to adjust display)\n" |
|||
" " PROG " 0x21 -ah 9 -buf ds:dx=\"hello world\\n$\" -q (INT 21,9 'hello world')\n" |
|||
" " PROG " an_int -buf es:bx=\"%512s\" (creates a scratch buffer of 512 bytes)\n" |
|||
" " PROG " 0x33 ax=9 bx=0 cx=0 -fbuf es:bx=cursor.dat (mouse cursor from file)\n" |
|||
" o Memory (-d: display: called after interrupt)\n" |
|||
" " PROG " -q -dhx 0x400049:18 (BIOS video area data)\n" |
|||
" " PROG " -q es=0x40 -bx 0x49 -dhx es:bx:18 (same as above)\n" |
|||
" " PROG " -q -db 0xF8000000:512 >file (binary dump of AMIBIOS serial data)\n" |
|||
" o IVT\n" |
|||
" " PROG " -q -divt (display vectors from interrupt vector table = IVT)\n" |
|||
" " PROG " -q -divt 0x10-0x1F (display IVT slots 0x10 to 0x1F)\n" |
|||
" o I/O Ports\n" |
|||
" " PROG " -out 0x70,0 -in 0x71 (read seconds from CMOS)\n" |
|||
" " PROG " -out 0x70,0 -out 0x71,0 (zero-out seconds in CMOS)\n"; |
|||
|
|||
char *int_error[] = { |
|||
NULL, |
|||
"Parse", |
|||
}; |
|||
|
|||
char str_flags[] = "0N..ODITSZ0A0P1C"; /* 80x86 flag register */ |
|||
|
|||
union REGS reg; |
|||
struct SREGS sreg; |
|||
unsigned int reg_bp, reg_sp, flags; |
|||
int int_call; /* the interrupt to be called */ |
|||
int dos_errno; |
|||
int quiet_mode = 0; /* quiet means just execute int - no reg display * /* does not apply on display
|
|||
* opts */ |
|||
int buff_now = 0; |
|||
char *buff[10]; /* array of read buffer pointers */ |
|||
|
|||
int dbuff_now = 0; |
|||
DBUFFER dbuff[10]; /* the buffers to show at end of intr */ |
|||
|
|||
|
|||
/* --- Prototypes --- */ |
|||
OPTION *parse_an_opt(char *argv[], int *opt_now, int mode); |
|||
void doit(void); |
|||
void reg_display(void); |
|||
int set_int_val(char **argv, int *opt_now); |
|||
int ivt_display(char **argv, int *opt_now); |
|||
int ioport_out(char **argv, int *opt_now); |
|||
int ioport_in(char **argv, int *opt_now); |
|||
int read_escape(char **p); |
|||
int set_buff(char **argv, int *opt_now); |
|||
int set_fbuff(char **argv, int *opt_now); |
|||
int set_dbuff(char **argv, int *opt_now); |
|||
int dbuff_parse(void **ptr, char *tok); |
|||
int set_dbuff(char **argv, int *opt_now); |
|||
int show_help(char **argv, int *opt_now); |
|||
int set_quiet(char **argv, int *opt_now); |
|||
void error_exit(int err, char *s); |
|||
|
|||
/* --- */ |
|||
|
|||
/*
|
|||
* Structure with all the `action' to be done for an option |
|||
* NB: Care with matching prefixes (longer must come first) |
|||
*/ |
|||
OPTION Opt[] = { |
|||
|
|||
/* NB: put the longer strings first ! */ |
|||
|
|||
{"$DEFAULT", 0, (void *) set_int_val}, |
|||
{"DIVT", 0, (void *) ivt_display}, /* display int vector table */ |
|||
{"INT", 2, (void *) &int_call}, |
|||
|
|||
{"OUTW", 0, (void *) ioport_out}, /* I/O port write, read */ |
|||
{"OUT", 0, (void *) ioport_out}, |
|||
{"INW", 0, (void *) ioport_in}, |
|||
{"IN", 0, (void *) ioport_in}, |
|||
|
|||
{"DBUF", 0, (void *) set_dbuff}, |
|||
{"FBUF", 0, (void *) set_fbuff}, |
|||
{"BUF", 0, (void *) set_buff}, |
|||
{"DHX", 0, (void *) set_dbuff}, /* display mem contents (hex) */ |
|||
|
|||
{"FL", 2, (void *) &(reg.x.flags)}, /* set flags (won't affect anything) */ |
|||
|
|||
{"AX", 2, (void *) &(reg.x.ax)}, /* set general registers */ |
|||
{"BX", 2, (void *) &(reg.x.bx)}, |
|||
{"CX", 2, (void *) &(reg.x.cx)}, |
|||
{"DX", 2, (void *) &(reg.x.dx)}, |
|||
{"AH", 1, (void *) &(reg.h.ah)}, |
|||
{"BH", 1, (void *) &(reg.h.bh)}, |
|||
{"CH", 1, (void *) &(reg.h.ch)}, |
|||
{"DH", 1, (void *) &(reg.h.dh)}, |
|||
{"AL", 1, (void *) &(reg.h.al)}, |
|||
{"BL", 1, (void *) &(reg.h.bl)}, |
|||
{"CL", 1, (void *) &(reg.h.cl)}, |
|||
{"DL", 1, (void *) &(reg.h.dl)}, |
|||
|
|||
{"SI", 2, (void *) &(reg.x.si)}, /* set index, stack registers */ |
|||
{"DI", 2, (void *) &(reg.x.di)}, |
|||
{"BP", 0, 0}, |
|||
{"SP", 0, 0}, |
|||
|
|||
{"CS", 2, (void *) &(sreg.cs)}, /* set segment registers */ |
|||
{"DS", 2, (void *) &(sreg.ds)}, |
|||
{"ES", 2, (void *) &(sreg.es)}, |
|||
{"SS", 2, (void *) &(sreg.ss)}, |
|||
|
|||
{"DA", 0, (void *) set_dbuff}, /* display mem contents (ascii) */ |
|||
{"D", 0, (void *) set_dbuff}, /* display mem contents (ascii+hex) */ |
|||
{"Q", 0, (void *) set_quiet}, /* quiet (no disply of reg contents) */ |
|||
{"H", 0, (void *) show_help}, /* help */ |
|||
}; |
|||
|
|||
|
|||
int cdecl |
|||
main(int argc, char *argv[]) |
|||
{ |
|||
int opt_now; |
|||
|
|||
if (argc == 1) |
|||
error_exit(0, NULL); |
|||
|
|||
/* parse the arguments and do proper action */ |
|||
for (opt_now = 1; opt_now < argc; opt_now++) |
|||
if (parse_an_opt(argv, &opt_now, 0) == NULL) |
|||
error_exit(1, NULL); |
|||
doit(); |
|||
return (0); |
|||
} |
|||
|
|||
|
|||
/*
|
|||
* Parses an argument and calls proper function or assigns numbers |
|||
* accordingly. Reentrant. |
|||
*/ |
|||
OPTION * |
|||
parse_an_opt(char *argv[], int *opt_now, int mode) |
|||
{ |
|||
int i, arg_len, get_next_arg; |
|||
char *opts, *optarg, *p; |
|||
long val; |
|||
|
|||
opts = argv[*opt_now]; |
|||
if (strchr(switchchar, opts[0])) /* option starts with a switch char, skip it */ |
|||
opts++, argv[*opt_now]++; |
|||
for (i = 0; i < (sizeof(Opt) / sizeof(OPTION)); i++) { |
|||
arg_len = strlen(Opt[i].opts); |
|||
get_next_arg = opts[arg_len] == 0; |
|||
if (strncmpi(opts, Opt[i].opts, arg_len) == 0) { |
|||
if (mode & PARSE_NOACTION) /* do not perform action */ |
|||
return (&Opt[i]); /* just return ptr to Opt slot */ |
|||
switch (Opt[i].size) { |
|||
|
|||
case 0: /* call the function */ |
|||
if (!(mode & PARSE_JUSTARGS) && Opt[i].ptr != (void *) 0) |
|||
if ((*((fun_ptr) Opt[i].ptr)) (argv, opt_now) == 0) |
|||
return (NULL); /* error */ |
|||
return (&Opt[i]); |
|||
|
|||
case 1: /* ptr is a byte, short, int */ |
|||
case 2: |
|||
case 4: |
|||
if (get_next_arg) |
|||
optarg = argv[++(*opt_now)]; /* get next option */ |
|||
else |
|||
optarg = opts + arg_len + 1; /* skip a separator (eg =) */ |
|||
val = strtol(optarg, &p, 0); |
|||
if (p == optarg) |
|||
return (NULL); |
|||
switch (Opt[i].size) { |
|||
case 1: |
|||
*((char *) Opt[i].ptr) = (char) val; |
|||
break; |
|||
case 2: |
|||
*((short *) Opt[i].ptr) = (short) val; |
|||
break; |
|||
case 4: |
|||
*((long *) Opt[i].ptr) = (long) val; |
|||
break; |
|||
} |
|||
return (&Opt[i]); |
|||
|
|||
default: |
|||
assert(NOTREACHED); |
|||
} |
|||
} |
|||
} |
|||
if (mode & PARSE_JUSTARGS) |
|||
return (&Opt[0]); /* default */ |
|||
else { |
|||
i = (*((fun_ptr) Opt[0].ptr)) (argv, opt_now); /* default */ |
|||
return (i == 0 ? NULL : &Opt[0]); |
|||
} |
|||
} |
|||
|
|||
/*
|
|||
* Call the interrupt if asked and display the result buffers |
|||
*/ |
|||
void |
|||
doit(void) |
|||
{ |
|||
int i; |
|||
long j; |
|||
unsigned char far *ptr; |
|||
unsigned char b; |
|||
|
|||
dos_errno = 0; |
|||
if (int_call != -1) { |
|||
reg_bp = _BP; |
|||
reg_sp = _SP; |
|||
flags = _FLAGS; |
|||
reg_display(); |
|||
} |
|||
if (int_call > 0 && int_call < 256) { |
|||
quiet_mode || printf("\nINT: 0x%02X\n", int_call); |
|||
int86x(int_call, ®, ®, &sreg); /**/ |
|||
if (reg.x.cflag != 0) /* error occured */ |
|||
dos_errno = _doserrno; |
|||
reg_bp = _BP; |
|||
reg_sp = _SP; |
|||
quiet_mode || printf("\n"); |
|||
flags = reg.x.flags; |
|||
reg_display(); |
|||
if (!quiet_mode && (int_call == 0x21 || int_call == 0x24)) /* dos call */ |
|||
printf("DOSERR: %04X (%u)\n", dos_errno, dos_errno); |
|||
} |
|||
/* display dbuffers */ |
|||
|
|||
for (i = 0; i < dbuff_now; i++) { |
|||
ptr = (unsigned char far *) MK_FP(*(dbuff[i].ptr_to_seg), *(dbuff[i].ptr_to_off)); |
|||
|
|||
if (dbuff[i].mode & DBUFF_BIN) /* binary */ |
|||
setmode(1, O_BINARY); |
|||
else |
|||
printf("\n*<%s> {\n", dbuff[i].logo); |
|||
for (j = 0; j < dbuff[i].bytes; j++, ptr++) { |
|||
b = *ptr & 0x00FF; /* byte to display */ |
|||
if (dbuff[i].mode & DBUFF_BIN) { /* binary */ |
|||
putchar(b); |
|||
continue; /* nothing else */ |
|||
} |
|||
if (dbuff[i].mode & DBUFF_HEX) |
|||
printf("%02X", b); |
|||
if (dbuff[i].mode == DBUFF_ASC) |
|||
putchar(iscntrl(b) ? '.' : b); |
|||
else if (dbuff[i].mode & DBUFF_ASC) |
|||
printf("(%c)", iscntrl(b) ? '.' : b); |
|||
if (dbuff[i].mode != DBUFF_ASC) |
|||
printf(" "); |
|||
} |
|||
fflush(stdout); |
|||
if (dbuff[i].mode & DBUFF_BIN) /* binary */ |
|||
setmode(1, O_TEXT); |
|||
else |
|||
printf("}\n"); |
|||
} |
|||
/* free the read buffers allocated */ |
|||
for (i = 0; i < buff_now; i++) |
|||
free(buff[i]); |
|||
} |
|||
|
|||
void |
|||
reg_display(void) |
|||
{ |
|||
char s[32]; |
|||
int i, bit_on; |
|||
|
|||
if (quiet_mode) |
|||
return; |
|||
printf( |
|||
"AX=%04X BX=%04X CX=%04X DX=%04X\n" |
|||
"SI=%04X DI=%04X BP=%04X SP=%04X\n" |
|||
"CS=%04X DS=%04X ES=%04X SS=%04X", |
|||
reg.x.ax, reg.x.bx, reg.x.cx, reg.x.dx, |
|||
reg.x.si, reg.x.di, reg_bp, reg_sp, |
|||
sreg.cs, sreg.ds, sreg.es, sreg.ss); |
|||
strncpy(s, str_flags, 32); /* use a scratch copy */ |
|||
/* and now the flags */ |
|||
flags = reg.x.flags; |
|||
for (i = 0; i < 16; i++) { |
|||
bit_on = (flags & ((unsigned) 0x8000 >> i)) != 0; |
|||
if (s[i] == '.') |
|||
s[i] = bit_on ? '1' : '0'; |
|||
else |
|||
s[i] = bit_on ? s[i] : tolower(s[i]); |
|||
} |
|||
printf(" CPU Flags: %16s\n", s); |
|||
} |
|||
|
|||
/*
|
|||
* 'default' argument function - see if it is an interrupt |
|||
*/ |
|||
int |
|||
set_int_val(char **argv, int *opt_now) |
|||
{ |
|||
long val; |
|||
char *p; |
|||
|
|||
val = strtol(argv[*opt_now], &p, 0); |
|||
if (val <= 0 || val > 255 || p - argv[*opt_now] != strlen(argv[*opt_now])) |
|||
return (0); /* problems */ |
|||
int_call = (int) val; |
|||
return (1); |
|||
} |
|||
|
|||
/*
|
|||
* Display a slot of the Interrupt Vector Table |
|||
*/ |
|||
int |
|||
ivt_display(char **argv, int *opt_now) |
|||
{ |
|||
char sfrom[20], sto[20]; |
|||
int from, to, i; |
|||
void far *p; |
|||
|
|||
if ((i = sscanf(argv[*opt_now + 1], "%[0-9xX]-%s", sfrom, sto)) == 2) { /* is a range given ? */ |
|||
(*opt_now)++; /* consume next arg */ |
|||
from = (int) strtol(sfrom, (char **) &sfrom, 0); |
|||
to = (int) strtol(sto, (char **) &sto, 0); |
|||
} else { |
|||
from = 0; |
|||
to = 255; |
|||
} |
|||
/* do it now */ |
|||
printf("Interrupt Vector Table (0x%02X to 0x%02X)\n", from, to); |
|||
for (i = from; i <= to; i++) { |
|||
disable(); /* just in case ... */ |
|||
p = (void far *) *((long far *) (4L * i)); |
|||
enable(); |
|||
printf(" * 0x%02X (%3u): %Fp\n", i, i, p); |
|||
} |
|||
printf("\n"); |
|||
return (1); |
|||
} |
|||
|
|||
int |
|||
ioport_out(char **argv, int *opt_now) |
|||
{ |
|||
char *optarg, sport[10], sval[10]; |
|||
int word_op, port, val; |
|||
|
|||
optarg = argv[*opt_now]; |
|||
word_op = (toupper(optarg[3]) == 'W') ? 1 : 0; |
|||
if (isdigit(optarg[3 + word_op])) /* arg follows with no delimiter */ |
|||
optarg += 3 + word_op; |
|||
else |
|||
optarg = argv[++(*opt_now)]; |
|||
if (sscanf(optarg, "%[^ ,;]%*[ ,;]%s", sport, sval) != 2) |
|||
return (0); |
|||
port = (int) strtol(sport, (char **) &sport, 0); |
|||
val = (int) strtol(sval, (char **) &sval, 0); |
|||
if (word_op) |
|||
outport(port, (unsigned) val); |
|||
else |
|||
outportb(port, val); |
|||
int_call = -1; |
|||
return (1); |
|||
} |
|||
|
|||
int |
|||
ioport_in(char **argv, int *opt_now) |
|||
{ |
|||
char *optarg, sport[10]; |
|||
int word_op, port, val; |
|||
|
|||
optarg = argv[*opt_now]; |
|||
word_op = (toupper(optarg[2]) == 'W') ? 1 : 0; |
|||
if (isdigit(optarg[2 + word_op])) /* arg follows with no delimiter */ |
|||
optarg += 2 + word_op; |
|||
else |
|||
optarg = argv[++(*opt_now)]; |
|||
if (sscanf(optarg, "%s", sport) != 1) |
|||
return (0); |
|||
port = (int) strtol(sport, (char **) &sport, 0); |
|||
if (word_op) { |
|||
val = inport(port); |
|||
quiet_mode || printf("INW 0x%04X (%5u): 0x%04X (%5u)\n", port, port, val, val); |
|||
} else { |
|||
val = inportb(port); |
|||
quiet_mode || printf("IN 0x%04X (%5u): 0x%02X (%3u)\n", port, port, val, val); |
|||
} |
|||
quiet_mode || printf("\n"); |
|||
int_call = -1; |
|||
return (1); |
|||
} |
|||
|
|||
#define ESCAPES 10 |
|||
static int esc_to_code[ESCAPES][2] = { |
|||
{'n', '\n'}, |
|||
{'t', '\t'}, |
|||
{'v', '\v'}, |
|||
{'b', 'b'}, |
|||
{'r', '\r'}, |
|||
{'f', '\f'}, |
|||
{'a', '\a'}, |
|||
{'\\', '\\'}, |
|||
{'\?', '?'}, |
|||
{'\'', '\''}, |
|||
}; |
|||
|
|||
/*
|
|||
* returns with *p pointing to char after the one(s) consumed |
|||
*/ |
|||
int |
|||
read_escape(char **p) |
|||
{ |
|||
int i; |
|||
|
|||
if (isdigit(**p)) /* octal */ |
|||
return ((int) strtol(*p, p, 8)); |
|||
else if (**p == 'x') /* hex */ |
|||
return ((int) strtol(*p + 1, p, 16)); |
|||
for (i = 0; i < ESCAPES; i++) |
|||
if (**p == esc_to_code[i][0]) { |
|||
(*p)++; /* consume it */ |
|||
return (esc_to_code[i][1]); |
|||
} |
|||
/* otherwise, return the character un-translated */ |
|||
(*p)++; /* consume it */ |
|||
return (**p); |
|||
} |
|||
|
|||
|
|||
/*
|
|||
* load seg register values to point ot the created buffer |
|||
*/ |
|||
void |
|||
load_regpair(char *s_seg, char *s_off, void far *buff) |
|||
{ |
|||
int len; |
|||
char stmp[50], *argv_fake[3]; |
|||
|
|||
/* load the regs */ |
|||
argv_fake[0] = stmp; |
|||
argv_fake[1] = ""; |
|||
len = 0; |
|||
sprintf(stmp, "-%s 0x%X", s_seg, FP_SEG(buff)); |
|||
parse_an_opt(argv_fake, (int *) &len, PARSE_JUSTARGS); /* make it think it's an option */ |
|||
sprintf(stmp, "-%s 0x%X", s_off, FP_OFF(buff)); |
|||
parse_an_opt(argv_fake, (int *) &len, PARSE_JUSTARGS); /* and again for offs register */ |
|||
} |
|||
|
|||
/*
|
|||
* set registers accordingly |
|||
*/ |
|||
int |
|||
set_buff(char **argv, int *opt_now) |
|||
{ |
|||
char *optarg, *p, *dp; |
|||
char s_seg[10], s_off[10]; |
|||
char stmp[50]; |
|||
static char dummy[] = ""; /* for case of %s in fmt str */ |
|||
unsigned int len; |
|||
|
|||
optarg = argv[++(*opt_now)]; /* s_off pair */ |
|||
sscanf(optarg, "%[^:]:%s", &s_seg, &s_off); |
|||
if (s_off[2] == '=') |
|||
s_off[2] = 0; |
|||
optarg = argv[++(*opt_now)]; /* printf like string */ |
|||
/* how big a buffer ? */ |
|||
len = strlen(optarg); |
|||
/* add the %# lengths (extra buffer space) */ |
|||
for (p = strchr(optarg, '%'); p != NULL; p = strchr(p + 1, '%')) |
|||
len += atoi(p + 1); |
|||
|
|||
if ((buff[buff_now] = (char *) malloc(len)) == NULL) |
|||
return (0); |
|||
/* create escape chars again (since cmd processing makes \ into \\) */ |
|||
p = optarg, dp = stmp; |
|||
while (*p) |
|||
if (*p == '\\') { |
|||
p++; /* consume \ */ |
|||
*dp++ = read_escape(&p); |
|||
} else |
|||
*dp++ = *p++; |
|||
|
|||
/* load the buffer; 5 % fields are enough (XXX ..f func problem if \0 appears before end of fmt) */ |
|||
sprintf(buff[buff_now], stmp, dummy, dummy, dummy, dummy, dummy); |
|||
|
|||
load_regpair(s_seg, s_off, (void far *) buff[buff_now]); |
|||
buff_now++; |
|||
return (1); |
|||
} |
|||
|
|||
/*
|
|||
* set register pair to point to buffer with data from a file |
|||
*/ |
|||
int |
|||
set_fbuff(char **argv, int *opt_now) |
|||
{ |
|||
char *optarg, *fname; |
|||
char s_seg[10], s_off[80]; |
|||
long len; |
|||
FILE *f; |
|||
|
|||
optarg = argv[++(*opt_now)]; /* s_off pair */ |
|||
sscanf(optarg, "%[^:]:%s", &s_seg, &s_off); |
|||
if (s_off[2] == '=') { |
|||
s_off[2] = 0; |
|||
fname = &s_off[3]; |
|||
} else |
|||
return (0); |
|||
|
|||
if ((f = fopen(fname, "rb")) == NULL) |
|||
return (0); |
|||
len = filelength(fileno(f)); |
|||
if (len > 65500L || (buff[buff_now] = (char *) malloc((unsigned int)len)) == NULL) |
|||
return (0); |
|||
if (fread(buff[buff_now], (int) len, 1, f) != 1) |
|||
return (0); |
|||
load_regpair(s_seg, s_off, (void far *) buff[buff_now]); |
|||
buff_now++; |
|||
fclose(f); |
|||
return (1); |
|||
} |
|||
|
|||
int |
|||
dbuff_parse(void **ptr, char *tok) |
|||
{ |
|||
char stmp[50], *argv_fake[3]; |
|||
OPTION *p_opt; |
|||
int len = 0; |
|||
|
|||
argv_fake[0] = stmp; |
|||
argv_fake[1] = ""; |
|||
sprintf(stmp, "-%s 0", tok); |
|||
p_opt = parse_an_opt(argv_fake, &len, PARSE_JUSTARGS | PARSE_NOACTION); |
|||
if (p_opt == NULL || p_opt == &Opt[0]) |
|||
return (0); |
|||
*ptr = (unsigned *) p_opt->ptr; |
|||
return (1); |
|||
} |
|||
|
|||
/*
|
|||
* add to the list of the buffers to be displayed at end |
|||
*/ |
|||
int |
|||
set_dbuff(char **argv, int *opt_now) |
|||
{ |
|||
char mode_char; |
|||
char *optarg, *p; |
|||
char tok[3][15]; /* max 3 tokens of 15 chars each */ |
|||
int i; |
|||
long addr; |
|||
unsigned long num = 1L; /* number of bytes to display */ |
|||
DBUFFER *dpb; |
|||
|
|||
dpb = &dbuff[dbuff_now]; |
|||
dpb->mode = DBUFF_HEX | DBUFF_ASC; |
|||
mode_char = toupper(argv[*opt_now][1]); |
|||
dpb->mode &= (mode_char == 'A') ? ~DBUFF_HEX : ~0; |
|||
dpb->mode &= (mode_char == 'H') ? ~DBUFF_ASC : ~0; |
|||
if (mode_char == 'B') { /* binary mode */ |
|||
dpb->mode &= ~(DBUFF_HEX | DBUFF_ASC); |
|||
dpb->mode |= DBUFF_BIN; |
|||
} |
|||
optarg = argv[++(*opt_now)]; /* reg pair */ |
|||
strncpy(dpb->logo, optarg, 20); |
|||
/* collect tokens */ |
|||
for (i = 0, p = strtok(optarg, ":="); p; p = strtok(NULL, ":=")) |
|||
strcpy(tok[i++], p); |
|||
if (i > 3) |
|||
return (0); |
|||
/* process them */ |
|||
addr = strtoul(tok[0], &p, 0); |
|||
if ((p - tok[0]) > 0) { /* first is addr */ |
|||
if (i > 1) { /* there's a 2nd token */ |
|||
num = strtoul(tok[1], &p, 0); |
|||
if ((p - tok[1]) == 0 || num == 0) |
|||
return (0); /* wrong argument */ |
|||
} |
|||
dpb->addr = (void far *) addr; |
|||
dpb->ptr_to_off = (unsigned *) &(dpb->addr); |
|||
dpb->ptr_to_seg = ((unsigned *) &(dpb->addr)) + 1; |
|||
} else { /* should be Reg:Reg[:#] format */ |
|||
if (dbuff_parse((void **) &(dpb->ptr_to_seg), tok[0]) == 0) |
|||
return (0); |
|||
if (dbuff_parse((void **) &(dpb->ptr_to_off), tok[1]) == 0) |
|||
return (0); |
|||
if (i > 2) { /* num argument */ |
|||
num = strtoul(tok[2], &p, 0); |
|||
if ((p - tok[2]) == 0 || num == 0) |
|||
return (0); /* wrong argument */ |
|||
} |
|||
} |
|||
dpb->bytes = num; |
|||
dbuff_now++; /* have inserted an element */ |
|||
return (1); |
|||
} |
|||
|
|||
int |
|||
set_quiet(char **argv, int *opt_now) |
|||
{ |
|||
argv = argv, opt_now = opt_now; /* eliminate warning */ |
|||
return (quiet_mode = 1); |
|||
} |
|||
|
|||
#define fmsg stdout /* DOS stderr cannot be redir'ed >:-{ */ |
|||
|
|||
int |
|||
show_help(char **argv, int *opt_now) |
|||
{ |
|||
argv = argv, opt_now = opt_now; /* eliminate warning */ |
|||
fprintf(fmsg, |
|||
PROG ": Execute and investigate interrupts/system data (ver " VERSION ")\n" |
|||
"Copyright (c) 1992-1994 A. Haritsis <ah@doc.ic.ac.uk>. Distribute freely.\n"); |
|||
error_exit(0, help); |
|||
return (1); |
|||
} |
|||
|
|||
void |
|||
error_exit(int err, char *s) |
|||
{ |
|||
if (err > 0) |
|||
fprintf(fmsg, PROG ": %s error\n", int_error[err]); |
|||
fprintf(fmsg, "%s", usage); |
|||
if (s != NULL) |
|||
fprintf(fmsg, "%s", s); |
|||
exit(err); |
|||
} |
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
File diff suppressed because it is too large
Binary file not shown.
Binary file not shown.
@ -0,0 +1,40 @@ |
|||
This is the fifth of six archives containing the x/86MS-DOS Interrupt List, |
|||
Release 61. |
|||
|
|||
This archive contains utility programs and viewers for the interrupt |
|||
list. Most of these programs have been contributed by others; if you |
|||
have problems with a contributed program, please contact the author of |
|||
the program with which you experienced difficulties. |
|||
|
|||
The DOS viewers Interrupt Helper, Interrupt Summary, and IVIEW are |
|||
offered in this archive, as is the Windows viewer ILINA. Interrupt |
|||
Summary is designed to be keystroke-compatible with INTERVUE (which is |
|||
no longer included), while offering additional functionality. IVIEW is |
|||
designed to conserve disk space by not requiring any additional index |
|||
files and by itself being as compact as possible (under 2K!). |
|||
|
|||
In addition, the source code for COMBINE, INTPRINT, INT.COM, and the |
|||
Epsilon extension code I use while editing the list are included in |
|||
this archive. |
|||
|
|||
Ralf Brown |
|||
|
|||
|
|||
Files in this archive: |
|||
README.5 this file |
|||
86BUGS04.ZIP |
|||
COMBINE.ASM source code for COMBINE.COM |
|||
II.ZIP interrupt list viewer by Martin Rystrand |
|||
ILINA100.ZIP Interrupt LIst NAvigator for MS Windows |
|||
INT.C source for INT.COM |
|||
INT.COM invoke an interrupt from the command line |
|||
INTHLP10.ZIP Interrupt Helper |
|||
INTLIST.E code for Epsilon editor extensions for intlist |
|||
INTPRINT.C INTPRINT source code |
|||
INTSUM16.ZIP Interrupt Summary (including source) |
|||
IVIEW102.ZIP |
|||
VIEWINTL.ZIP list viewer by Sly Golovanov |
|||
|
|||
Note: PCICFG is now distributed separately in RBPCIxxx.ZIP (v1.17 as of |
|||
this writing), available at |
|||
http://www.pobox.com/~ralf/files.html#RBpci |
Binary file not shown.
@ -0,0 +1,10 @@ |
|||
x86/MS-DOS Interrupt List, Release 61 |
|||
A Comprehensive listing of interrupt |
|||
calls, both documented and undocumented, |
|||
plus ports/memory/CMOS/etc. Over 9600 |
|||
entries (plus 5400 tables) in INTER61A |
|||
to INTER61D, utility programs and |
|||
viewers in INTER61E, and hypertext |
|||
conversion progs & WinHelp utilities in |
|||
INTER60F. Over 8 million bytes of |
|||
text! Released 2000/07/16. |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 766 B |
Binary file not shown.
@ -0,0 +1,50 @@ |
|||
This is the sixth of six archives containing the x86/MS-DOS Interrupt List, |
|||
Release 61. |
|||
|
|||
This archive contains programs to convert the MS-DOS interrupt list |
|||
into hypertext databases for a number of popular hypertext help |
|||
systems. These programs have been contributed by others; I have not |
|||
tested most of them personally because I do not own the help systems |
|||
for which they produce databases. If you have problems, please contact |
|||
the author of the program with which you experienced difficulties. |
|||
Some of these programs predate, and will thus not take advantage of, |
|||
recent enhancements to the list's format. MOST OF THESE CONVERSION |
|||
UTILITIES ARE NOT STAND-ALONE PRODUCTS! You must have the appropriate |
|||
help system compiler to create an actual hypertext database which can |
|||
be read by the help system; these are not included because they are |
|||
commercial products, usually distributed together with the hypertext |
|||
viewer. |
|||
|
|||
Not included here because it is rather large and is distributed |
|||
separately by the author, is IL2HDK by Ron Loewy, a conversion program |
|||
to put the interrupt list into Help Development Kit format, from which |
|||
it can be converted into about a dozen different formats, including |
|||
WinHelp, QuickHelp, Borland THELP, OS/2 IPF, POPHELP, and DESQview/X |
|||
help. At the time of this writing, the current freeware version was 3.5 |
|||
(IL2HDK35), with v4.3 included in the commercial version of HLPDK |
|||
(see http://www.hyperact.com/hact8.html). |
|||
|
|||
[NOTE: due to the change in table numbering introduced with Release 59, |
|||
some or all of the following programs may fail to properly cross-reference |
|||
tables.] |
|||
|
|||
|
|||
Files in this archive: |
|||
README.6 |
|||
HINTSRCH.ZIP full-text search DLL |
|||
IL2ME102.ZIP convert list into Multi-Edit help database |
|||
INT2RTF.ZIP Slava Gostrenko's converter |
|||
INT2WHLP.ZIP converter by Christian M�ller-Planitz / Bent Lynggaard |
|||
INT2GUID.ZIP convert list into TurboPower GUIDE or POPHELP database |
|||
INT2HLP.ZIP convert list into QuickHelp database |
|||
INT2IPF.ZIP convert list into OS/2 .IPF file |
|||
INT2QH.ZIP convert list into QuickHelp database |
|||
INT2TPH.ZIP convert to Borland THELP/Borl.Pascal help file (.TPH) |
|||
INTERRUP.ICO icon for interrupt list |
|||
RB2NG116.ZIP convert list into Norton Guides database |
|||
WH_ED122.ZIP WinHelp color editor |
|||
|
|||
Note: in order to save space, the DOS extender used by both INT2RTF and |
|||
INT2TPH is distributed *only* with INT2TPH; if you do not already have |
|||
copies of RTM.EXE and DPMI16BI.OVL, you will need to download |
|||
INTERrrG. |
Binary file not shown.
@ -0,0 +1,17 @@ |
|||
%! Detailed register description file for PCICFG.EXE by Ralf Brown |
|||
%! |
|||
%! Filename 10040005.PCI = Vendor 1004h, Device 0005h |
|||
%! Last Edit 9/27/97 by Ralf Brown |
|||
%! |
|||
|
|||
[See file BLANK.PCI for description of formatting specification and how |
|||
to create your own device descriptions.] |
|||
|
|||
!begin |
|||
VLSI VL82C591 Host/PCI Bridge registers in detail: |
|||
Bus Number: %[40]2d |
|||
Subordinate Bus: %[41]2d |
|||
Device-Specific: %[54]2x %[55]2x %[58]2x %[59]2x %[5C]2x %[5D]2x %[5E]2x %[5F]2x %[60]2x %[FF]2x |
|||
!end |
|||
|
|||
%! end of file |
@ -0,0 +1,20 @@ |
|||
%! Detailed register description file for PCICFG.EXE by Ralf Brown |
|||
%! |
|||
%! Filename 10040005.PCI = Vendor 1004h, Device 0005h |
|||
%! Last Edit 9/27/97 by Ralf Brown |
|||
%! |
|||
|
|||
[See file BLANK.PCI for description of formatting specification and how |
|||
to create your own device descriptions.] |
|||
|
|||
!begin |
|||
VLSI VL82C593 PCI/ISA Bridge registers in detail: |
|||
Device-Specific: %[50]2x %[51]2x %[52]2x %[53]2x %[54]2x %[55]2x %[56]2x %[57]2x |
|||
%[58]2x %[59]2x %[5A]2x -- %[5C]2x %[5D]2d %[5E]2x %[5F]2x |
|||
%[60]2x %[61]2x %[62]2x %[63]2x %[64]2x %[65]2x %[66]2x %[67]2x |
|||
%[68]2x %[69]2x %[6A]2x %[6B]2x %[6C]2x %[6D]2x %[6E]2x %[6F]2x |
|||
%[70]2x %[71]2x %[72]2x %[73]2x %[74]2x |
|||
%[FF]2x |
|||
!end |
|||
|
|||
%! end of file |
@ -0,0 +1,19 @@ |
|||
%! Detailed register description file for PCICFG.EXE by Ralf Brown |
|||
%! |
|||
%! Filename 10110009.PCI = Vendor 1011h, Device 0009h = DEC DC24140(A) |
|||
%! Last Edit 04feb98 by Ralf Brown |
|||
%! |
|||
|
|||
[See file BLANK.PCI for description of formatting specification and how |
|||
to create your own device descriptions.] |
|||
|
|||
!begin |
|||
DEC DC24140%[08:7-4]|;;A| Tulip Fast Ethernet registers in detail: |
|||
Chip Stepping: %[08:7-4]d Revision within Stepping: %[08:3-0]d |
|||
Configuration Driver Information: |
|||
Sleep Mode: %[40:31]ed |
|||
Snooze Mode: %[40:30]ed |
|||
Driver Use: %[40:15-8]2x |
|||
!end |
|||
|
|||
%! end of file |
@ -0,0 +1,20 @@ |
|||
%! Detailed register description file for PCICFG.EXE by Ralf Brown |
|||
%! |
|||
%! Filename 10110014.PCI = Vendor 1011h, Device 0014h = DEC DC24014 |
|||
%! Last Edit 04feb98 by Ralf Brown |
|||
%! |
|||
|
|||
[See file BLANK.PCI for description of formatting specification and how |
|||
to create your own device descriptions.] |
|||
|
|||
!begin |
|||
DEC DC24014 Tulip Plus registers in detail: |
|||
Chip Stepping: %[08:7-4]d Revision within Stepping: %[08:3-0]d |
|||
Configuration Driver Information: |
|||
Sleep Mode: %[40:31]ed |
|||
Snooze Mode: %[40:30]ed |
|||
Driver Use: %[40:15-8]2x |
|||
?: %[40]2x |
|||
!end |
|||
|
|||
%! end of file |
@ -0,0 +1,24 @@ |
|||
%! Detailed register description file for PCICFG.EXE by Ralf Brown |
|||
%! |
|||
%! Filename 10421000.PCI = Vendor 1042h, Device 1000h -- PC Techn. RZ-1000 |
|||
%! Last Edit 9/27/97 by Ralf Brown |
|||
%! |
|||
|
|||
Everything preceding a line beginning with the six characters "!begin" is |
|||
a comment and will be ignored (with the proviso that the total file size |
|||
not exceed 64K). Everything from the !begin line to a line starting with |
|||
the four characters "!end" forms part of the device description, in a |
|||
format similar to that used for printf(). |
|||
|
|||
[See file BLANK.PCI for description of formatting specification and how |
|||
to create your own device descriptions.] |
|||
|
|||
!begin |
|||
PC Technology RZ-1000 registers in detail: |
|||
Read-Ahead Mode: %[40:13]ed |
|||
?: %[40:31-0]8x |
|||
?: %[44:31-0]8x |
|||
?: %[48]2x %[49]2x %[4A]2x %[4B]2x %[4C]2x %[4D]2x %[4E]2x %[4F]2x |
|||
!end |
|||
|
|||
%! end of file |
@ -0,0 +1,271 @@ |
|||
%! Detailed register description file for PCICFG.EXE |
|||
%! |
|||
%! Filename 11060585.PCI -- VIA VT82C585VPX Host Bus-PCI Bridge |
|||
%! Last Edit 20sep98 by Denis Vlasenko |
|||
%! |
|||
%! Source: 580VPX.PDF file from VIA WWW site. |
|||
%! Very detailed. All registers dumped in binary and all bits shown. |
|||
%! |
|||
%! '%!??' - doubtful and/or untested places. |
|||
|
|||
!begin |
|||
VIA VPX Host Bus-PCI Bridge registers in detail: [by Denis Vlasenko] |
|||
|
|||
(50) Cache Control 1 %[50]8b |
|||
7-6 Cache Enable: %[50:7-6]|00 disabled;01 init;10 enabled;11 reserved| |
|||
5 Linear Burst Enabled: %[50:5]Y |
|||
4-3 Tag Configuration: %[50:4-3]|00 8 tag bits, no dirty bit;01 7 tag bits + dirty bit;10 10 tag bits, no dirty bit;11 9 tag bits + dirty bit| |
|||
2 SDRAM Interface Select: %[50:2]|0 CWE[0-7]#;1 GWE#, BWE#, SCASx#, SRASx#, SWEx#| |
|||
(Selects the function of pins 90-93 and 73-76) |
|||
1-0 SRAM Type: %[50:1-0]|00 no SRAM;01 reserved;10 burst SRAM;11 pipelined burst SRAM| |
|||
|
|||
(51) Cache Control 2 %[51]8b |
|||
7-6 Reserved: %[51:7-6]2b |
|||
5 Backoff CPU: %[51:5]|0 defer ready return until L2 is filled;1 backoff CPU until L2 is filled| |
|||
4 Reserved: %[51:4]1b |
|||
3 SRAM Banks: %[51:3]|1 bank;2 banks| |
|||
2 Reserved: %[51:2]1b |
|||
1-0 Cache Size: %[51:1-0]|00 256K;01 512K;10 1M;11 2M| |
|||
|
|||
(52) Non-Cacheable Control %[52]8b |
|||
Cacheable & Write-Protected: |
|||
7 C0000-C7FFF: %[52:7]Y |
|||
6 D0000-DFFFF: %[52:6]Y |
|||
5 E0000-EFFFF: %[52:5]Y |
|||
4 F0000-FFFFF: %[52:4]Y |
|||
3 Reserved: %[52:3]1b |
|||
2 L2 fill: %[52:2]|0 normal;1 forced (ignores CPU CACHE#)| |
|||
1 Reserved: %[52:1]1b |
|||
0 L2 mode: %[52:0]|0 write-back;1 write-through| |
|||
|
|||
(53) System Performance Control %[53]8b |
|||
7 Read Around Write: %[53:7]ed |
|||
6 Cache Read Pipeline Cycle: %[53:6]ed |
|||
5 Cache Write Pipeline Cycle: %[53:5]ed |
|||
4 DRAM Pipeline Cycle: %[53:4]ed |
|||
3 PCI Master Peer Concurrency: %[53:3]ed |
|||
2-0 Reserved: %[53:2-0]3b |
|||
|
|||
(54-55) Non-Cacheable Region #1 %[54]8b %[55]8b %!?? VIA's pdf says: 54:15-8 Base Address MSBs - A<28:21> |
|||
15-3 Address: %[54|55:7-3<16]8x hex %! 55:7-3 Base Address LSBs - A<20:16> |
|||
2-0 Size: %[55:2-0](RegionSize) %! 55:2-0 Range (Region Size) |
|||
|
|||
(56-57) Non-Cacheable Region #2 %[56]8b %[57]8b %!?? Similar to above |
|||
15-3 Address: %[56|57:7-3<16]8x hex |
|||
2-0 Size: %[57:2-0](RegionSize) |
|||
|
|||
(58) DRAM Configuration 1 %[58]8b |
|||
7-5 Bank 0/1 MA Map Type (EDO/FPG): %[58:7-5](EDOmapType) |
|||
Bank 0/1 MA Map Type (SDRAM): %[58:7]|0xx 16Mbit SDRAM;1xx 64Mbit SDRAM| |
|||
4 Reserved: %[58:4]1b |
|||
3-1 Bank 2/3 MA Map Type (EDO/FPG): %[58:3-1](EDOmapType) |
|||
Bank 2/3 MA Map Type (SDRAM): %[58:3]|0xx 16Mbit SDRAM;1xx 64Mbit SDRAM| |
|||
0 Reserved: %[58:1]1b |
|||
|
|||
(59) DRAM Configuration 2 %[59]8b |
|||
7-5 Bank 4/5 MA Map Type (EDO/FPG): %[59:7-5](EDOmapType) |
|||
Bank 4/5 MA Map Type (SDRAM): %[59:7]|0xx 16Mbit SDRAM;1xx 64Mbit SDRAM| |
|||
4-3 Reserved: %[59:4-3]2b |
|||
2-0 Last Bank DRAM Populated: %[59:2-0]|000 bank 0;001 bank 1;010 bank 2;011 bank 3;100 bank 4;101 bank 5;11x reserved| |
|||
|
|||
(5A) Bank 0 Ending (HA[29:22]): %[5A]8b %[5A<2]4dMb |
|||
(5B) Bank 1 Ending (HA[29:22]): %[5B]8b %[5B<2]4dMb |
|||
(5C) Bank 2 Ending (HA[29:22]): %[5C]8b %[5C<2]4dMb |
|||
(5D) Bank 3 Ending (HA[29:22]): %[5D]8b %[5D<2]4dMb |
|||
(5E) Bank 4 Ending (HA[29:22]): %[5E]8b %[5E<2]4dMb |
|||
(5F) Bank 5 Ending (HA[29:22]): %[5F]8b %[5F<2]4dMb |
|||
|
|||
(60) DRAM Type %[60]8b |
|||
7-6 Reserved: %[60:7-6]2b |
|||
5-4 DRAM Type for Bank 4/5: %[60:5-4](DRAMtype) |
|||
3-2 DRAM Type for Bank 2/3: %[60:3-2](DRAMtype) |
|||
1-0 DRAM Type for Bank 0/1: %[60:1-0](DRAMtype) |
|||
|
|||
(61) Shadow RAM Control 1 %[61]8b |
|||
7-6 CC000h-CFFFFh: %[61:7-6](Shadow) |
|||
5-4 C8000h-CBFFFh: %[61:5-4](Shadow) |
|||
3-2 C4000h-C7FFFh: %[61:3-2](Shadow) |
|||
1-0 C0000h-C3FFFh: %[61:1-0](Shadow) |
|||
|
|||
(62) Shadow RAM Control 2 %[62]8b |
|||
7-6 DC000h-DFFFFh: %[62:7-6](Shadow) |
|||
5-4 D8000h-DBFFFh: %[62:5-4](Shadow) |
|||
3-2 D4000h-D7FFFh: %[62:3-2](Shadow) |
|||
1-0 D0000h-D3FFFh: %[62:1-0](Shadow) |
|||
|
|||
(63) Shadow RAM Control 3 %[63]8b |
|||
7-6 E0000h-EFFFFh %[63:7-6](Shadow) |
|||
5-4 F0000h-FFFFFh %[63:5-4](Shadow) |
|||
3-2 Memory Hole %[63:3-2]|00 none;01 512K-640K;10 15M-16M (1M);11 14M-16M (2M)| |
|||
1 SMI Redirect to A0000h-BFFFFh: %[63:1]ed |
|||
0 I/O in A0000h-BFFFFh: %[63:0]|0 accesses VGA;1 accesses DRAM (not VGA!)| |
|||
|
|||
(64) DRAM Reference Timing (FPG Only) %[64]8b |
|||
7-6 RAS Precharge Time: %[64:7-6]|00 2T;01 3T;10 4T;11 6T| |
|||
5-4 RAS Pulse Width: %[64:5-4]|00 3T;01 4T;10 5T;11 6T| |
|||
3-2 CAS Read Pulse Width: %[64:3-2]|00 1T;01 2T (FPG), 1T (EDO);10 3T (FPG), 2T (EDO);11 4T (FPG), 3T (EDO)| |
|||
1 CAS Write Pulse Width: %[64:1]|0 1T;1 2T| |
|||
0 Column Address to CAS Delay: %[64:0]|0 1T;1 2T| |
|||
(see also 67:7) |
|||
|
|||
(65) DRAM Timing Control 1 (EDO/SDRAM) %[65]8b |
|||
7-6 Page Mode Control: %[65:7-6]|00 page closes after access;01 reserved;10 page stays open after access;11 page closes if CPU is idle| |
|||
5 Fast DRAM Decoding Enable: %[65:5]|0 end of second T2;1 end of first T2| |
|||
4 EDO Leadoff Cycle Reduction: %[65:4]|0 normal leadoff cycle;1 reduce leadoff cycle by 1T| |
|||
3 DRAM Data Latch Delay: %[65:3]|0 latch DRAM data 1 cycle before CPU;1 latch DRAM data 1/2 cycle before CPU| |
|||
2 Pin 88 Function Select: %[65:2]|0 DB32;1 TA9| |
|||
1 Reserved: %[65:1]1b |
|||
0 Relaxed DRAM Read Cycle Latency:%[65:0]|0 DRAM decoding time is end of T2;1 DRAM decoding time is the end of the second T2 if the write-buffer is not empty| |
|||
|
|||
(66) DRAM Timing Control 2 (EDO/SDRAM) %[66]8b |
|||
7 EDO Test Mode Enable: %[66:7]|0 normal mode;1 test mode| |
|||
6 Reserved: %[66:6]1b |
|||
5,6C:3 SDRAM CAS Latency: %[66:5|6C:3]|00 latency is 2;<>00 latency is 3| |
|||
4 Reserved: %[66:4]1b |
|||
3 Turbo EDO Mode Enable: %[66:3]|0 -2-2-2 two-cycle burst;1 -1-1-1 one-cycle burst| |
|||
2 DRAM-to-CPU FIFO Control: %[66:2]|0 -1-1-1 to pop data from FIFO to CPU;1 -2-2-2 to pop data from FIFO to CPU| |
|||
1 SDRAM RAS-Precharge Reduction: %[66:1]|0 use 64:7-6 for RAS-precharge time;1 reduce 64:7-6 RAS precharge time by 1T| |
|||
0 SDRAM RAS-to-CAS Delay Reduct.: %[66:0]|0 use 64:0 for col addr to CAS delay;1 column address to CAS delay is 1T| |
|||
|
|||
(67) 32-Bit DRAM Width %[67]8b |
|||
7 RAS to Column Address Delay: %[67:7]|0 1T;1 2T| |
|||
6 NA# Delay: %[67:6]|0 no NA# delay, 3-1-1-1-2-1-1-1;1 delay NA# 1T, 3-1-1-1-3-1-1-1| |
|||
(This bit only applies when 2 banks of PBSRAM are installed.) |
|||
5 Bank 5 Width: %[67:5]|0 64 bit;1 32 bit| |
|||
4 Bank 4 Width: %[67:4]|0 64 bit;1 32 bit| |
|||
3 Bank 3 Width: %[67:3]|0 64 bit;1 32 bit| |
|||
2 Bank 2 Width: %[67:2]|0 64 bit;1 32 bit| |
|||
1 Bank 1 Width: %[67:1]|0 64 bit;1 32 bit| |
|||
0 Bank 0 Width: %[67:0]|0 64 bit;1 32 bit| |
|||
|
|||
(68) Reserved (Do Not Program) %[68]8b |
|||
7-4 Reserved (do not program): %[68:7-4]4b |
|||
3 Pin 126 Function Select: %[68:3]|0 remains high all the time;1 pin 126 is MA12 for 64Mb DRAM support| |
|||
(0 - backward compatibility with VP) |
|||
2-0 Reserved (do not program): %[68:2-0]3b |
|||
|
|||
(69) Reserved (Do Not Program) %[69]8b |
|||
|
|||
(6A) Refresh Counter: %[6A]dx16 CPUCLKs |
|||
(When set to 0, DRAM refresh is disabled) |
|||
|
|||
(6B) Refresh Control %[6B]8b |
|||
7 CBR (CAS-before-RAS) Refresh: %[6B:7]ed |
|||
6 Burst Refresh (Burst 4 Times): %[6B:6]ed |
|||
5-3 Reserved: %[6B:5-3]3b |
|||
2 Extended Timing: %[6B:2]|0 normal timing;1 force 2T from MA to RAS# and CAS# falling for all cases| |
|||
1-0 Reserved: %[6B:1-0]2b |
|||
|
|||
(6C) SDRAM Control %[6C]8b |
|||
7 SDRAM Interleave (64Mbit only): %[6C:7]|0 2-bank interleave;1 4-bank interleave| |
|||
(16Mbit can have 2-bank interleave only) |
|||
6 SDRAM Burst Write: %[6C:6]ed |
|||
5 SDRAM Bank Interleave Enable: %[6C:5]ed |
|||
4 Reserved: %[6C:4]1b |
|||
3,66:5 SDRAM CAS Latency: %[6C:3|66:5]|00 latency is 2;<>00 latency is 3| |
|||
2-0 SDRAM Operation Mode Select: %[6C:2-0]|000 normal;001 NOP command enabled;010 all-banks-precharge command enabled;011 CPU-to-DRAM cycles conv to commands;100 CBR cycle enabled;101 reserved;11x reserved| |
|||
|
|||
(6D) DRAM Control Drive Strength %[6D]8b |
|||
7 Bank Decoding Test: %[6D:7]1b |
|||
6 MA[0:1] Drive: %[6D:6]|0 12mA;1 24mA| |
|||
5 Duplicate Copy of MA[0:1]: %[6D:5]|0 RAS5# RAS4# bit 0;1 MA1 MA0 bit 6| |
|||
4 Force SMM Mode: %[6D:4]1b |
|||
3 SDRAM Command Drive: %[6D:3]|0 12mA;1 24mA| |
|||
2 MA[2:13] / WE# Drive: %[6D:2]|0 12mA;1 24mA| |
|||
1 CAS# Drive: %[6D:1]|0 8mA;1 12mA| |
|||
0 RAS# Drive: %[6D:0]|0 12mA;1 24mA| |
|||
|
|||
(70) PCI Buffer Control %[70]8b |
|||
7 CPU to PCI Post-Write: %[70:7]ed |
|||
6 PCI Master to DRAM Post-Write: %[70:6]ed |
|||
5 PCI Master to DRAM Prefetch: %[70:5]ed |
|||
4-2 Reserved: %[70:4-2]3b |
|||
1 PCI Retry for CPU QW Access: %[70:1]ed |
|||
0 PCI Master Flushes PCI Buffer: %[70:0]|0 yes;1 no| |
|||
|
|||
(71) CPU to PCI Flow Control 1 %[71]8b |
|||
7,3 CPU writes burst on PCI: %[71:7|71:3]|00 PCI bursts disabled;01 only burst writes;1x all writes burst if possible| |
|||
6 Byte Merge: %[71:6]ed |
|||
5 Reserved: %[71:5]1b |
|||
4 PCI I/O Cycle Post Write: %[71:4]ed |
|||
2 PCI Fast Back-to-Back Write: %[71:2]ed |
|||
1 Quick Frame Generation: %[71:1]ed |
|||
0 1 Wait State PCI Cycles: %[71:0]ed |
|||
|
|||
(72) CPU to PCI Flow Control 2 %[72]8b |
|||
7 Retry Status over 16/64 Times: %[72:7]|0 no retry occurred;1 retry occurred (write 1 to clear)| |
|||
6 Retry Timeout Action: %[72:6]|0 retry forever;1 flush buffer/return FFFFFFFF for read| |
|||
5-4 Retry Count and Retry Backoff: %[72:5-4]|00 retry 2 times, back off CPU;01 retry 16 times;10 retry 4 times, back off CPU;11 retry 64 times| |
|||
3 Clear Failed Data and Continue Retry: %[72:3]|0 disabled;1 keep posting| |
|||
2 CPU Backoff on PCI Read Retry Failure: %[72:2]|0 disabled;1 backoff CPU| |
|||
1 Reduce 1T for FRAME# Generation: %[72:1]ed |
|||
0 Reduce 1T for CPU Read PCI Slave: %[72:0]|0 disabled;1 enabled (bypass TRDY# to LRDY#)| |
|||
|
|||
(73) PCI Master Control 1 %[73]8b |
|||
7 Local Memory Decoding: %[73:7]|0 fast (address phase);1 slow (first data phase)| |
|||
6 PCI Master 1-Wait-State Write: %[73:6]|0 zero wait state TRDY# response;1 one wait state TRDY# response| |
|||
5 PCI Master 1-Wait-State Read: %[73:5]|0 zero wait state TRDY# response;1 one wait state TRDY# response| |
|||
4 Reserved: %[73:4]1b |
|||
Assert STOP#... |
|||
3 ..after PCI Master Wrt Timeout: %[73:3]ed |
|||
2 ..after PCI Master Read Timeout:%[73:2]ed |
|||
1 LOCK# Function: %[73:1]ed |
|||
0 PCI Master Broken Timer Enable: %[73:0]ed |
|||
(Enabled - force into arbitration when there is no |
|||
FRAME# 16 PCICLK's after the GRANT) |
|||
|
|||
(74) PCI Master Control 2 %[74]8b |
|||
7 PCI Enhance Command Support: %[74:7]ed |
|||
6 PCI Master Single Write Merge: %[74:6]ed |
|||
5-0 Reserved: %[74:5-0]6b |
|||
|
|||
(75) PCI Arbitration 1 %[75]8b |
|||
7 Arbitration Mechanism: %[75:7]|0 PCI has priority;1 fair arbitration between PCI and CPU| |
|||
6 Arbitration Mode: %[75:6]|0 REQ-based (arbitrate at end of REQ#);1 frame-based (arbitrate at end of each FRAME#)| |
|||
5-4 Reserved: %[75:5-4]2b |
|||
3-0 PCI Master Bus Time-Out: %[75:3-0]dx32 PCICLKs |
|||
(force into arbitration after a period of time) |
|||
(0 - disable) |
|||
|
|||
(76) PCI Arbitration 2 %[76]8b |
|||
7 Master Priority Rotation Enable:%[76:7]|0 disabled (arbitration per 75:7);1 enabled (arbitration per 76:5-4)| |
|||
6 Reserved: %[76:6]1b |
|||
5-4 Master Priority Rotation Ctrl: %[76:5-4]|00 disabled (arbitration per 75:7);01 grant to CPU after every PCI master grant;10 grant to CPU after every 2 PCI master grants;11 grant to CPU after every 3 PCI master grants| |
|||
3-0 Reserved: %[76:3-0]4b |
|||
!end |
|||
|
|||
!enum EDOmapType |
|||
000 8-bit column address |
|||
001 9-bit column address |
|||
010 10-bit column address |
|||
011 11-bit column address |
|||
100 12-bit column address |
|||
101 reserved |
|||
11x reserved |
|||
!end |
|||
|
|||
!enum RegionSize |
|||
000 region disabled |
|||
001 64K |
|||
010 128K |
|||
011 256K |
|||
100 512K |
|||
101 1M |
|||
110 2M |
|||
111 4M |
|||
!end |
|||
|
|||
!enum DRAMtype |
|||
00 Fast Page Mode DRAM |
|||
01 EDO DRAM |
|||
10 reserved |
|||
11 Synchronous DRAM |
|||
!end |
|||
|
|||
!enum Shadow |
|||
00 read/write disabled |
|||
01 write enabled |
|||
10 read enabled |
|||
11 read/write enabled |
|||
!end |
|||
|
@ -0,0 +1,266 @@ |
|||
%! Detailed register description file for PCICFG.EXE by Ralf Brown |
|||
%! |
|||
%! Filename 11060598.PCI = Vendor 1106h, Device 0598h |
|||
%! VIA Technologies VT82C598MVP Host Bridge |
|||
%! |
|||
%! Written by Maurizio Vairani, email: mvairani@cloverinformatica.com |
|||
%! Created 08jan99 by Maurizio Vairani |
|||
%! Last edit 10jan99 by Ralf Brown |
|||
%! |
|||
!begin |
|||
|
|||
Via VT82C598MVP Host Bridge registers in detail: [by Maurizio Vairani] |
|||
|
|||
Cache Control |
|||
Offset 50-51 - Cache Control |
|||
Cache enable/initialize: %[50:7-6]|cache disable;cache initialize - L2 fill;cache enable;reserved| |
|||
Linear Burst: %[50:5]e Tag Configuration: %[50:4-3]|8+0;7+1;reserved| |
|||
Backoff CPU: %[51:5]|defer ready return until L2 filled;backoff CPU until L2 filled| |
|||
Cache Size: %[51:1-0]|256K;512K;1M;2M| SRAM Banks: %[51:3+1]d |
|||
Offset 52 - Non-Cacheable Control |
|||
C0000-C7FFF Cacheable & Write-Protected: %[52:7]Y |
|||
D0000-DFFFF Cacheable & Write-Protected: %[52:6]Y |
|||
E0000-EFFFF Cacheable & Write-Protected: %[52:5]Y |
|||
F0000-FFFFF Cacheable & Write-Protected: %[52:4]Y |
|||
L2 Fill on Single Read: %[52:2]|normal;force (fastest)| |
|||
L2 Write-Thru/Write-Back: %[52:0]|write-thru;write-back| |
|||
Offset 53 - System Performance Control |
|||
Read Around Write: %[53:7]e |
|||
Cache Pipeline Cycle: Read = %[53:6]e Write = %[53:5]e |
|||
DRAM Read Pipeline Cycle: %[53:4]e |
|||
Offset 55-54 - Non-Cacheable region #1 |
|||
Base Address: %[54:15-3<16]xh (%[54:15-3*128]dKb) Size: %[54:2-0](Range) |
|||
Offset 57-56 - Non-Cacheable region #2 |
|||
Base Address: %[56:15-3<16]xh (%[56:15-3*128]dKb) Size: %[56:2-0](Range) |
|||
|
|||
DRAM Control |
|||
Offset 59-58 - DRAM MA (Memory Address) Map Type |
|||
Bank 5/4 MA Map Type: %[60:5-4|58:15-13](EDO_FPG_SDRAM) |
|||
Bank 5/4 Virtual Channel Enable: %[58:12]Y |
|||
Bank 3/2 MA Map Type: %[60:3-2|58:3-1](EDO_FPG_SDRAM) |
|||
Bank 3/2 Virtual Channel Enable: %[58:0]Y |
|||
Bank 1/0 MA Map Type: %[60:1-0|58:7-5](EDO_FPG_SDRAM) |
|||
Bank 1/0 Virtual Channel Enable: %[58:4]Y |
|||
Offset 5F-5A - DRAM Row Ending Addresses |
|||
Offset 5A - Bank 0 Ending: %[5A<23]8xh (%[5A*8]3dMb) |
|||
Offset 5B - Bank 1 Ending: %[5B<23]8xh (%[5B*8]3dMb) |
|||
Offset 5C - Bank 2 Ending: %[5C<23]8xh (%[5C*8]3dMb) |
|||
Offset 5D - Bank 3 Ending: %[5D<23]8xh (%[5D*8]3dMb) |
|||
Offset 5E - Bank 4 Ending: %[5E<23]8xh (%[5E*8]3dMb) |
|||
Offset 5F - Bank 5 Ending: %[5F<23]8xh (%[5F*8]3dMb) |
|||
Offset 60 - DRAM Type |
|||
DRAM Type for Bank 5/4: %[60:5-4](DRAM) |
|||
DRAM Type for Bank 3/2: %[60:3-2](DRAM) |
|||
DRAM Type for Bank 1/0: %[60:1-0](DRAM) |
|||
Offset 61,62,63 - Shadow RAM Control |
|||
C0000h-C3FFFh: %[61:1-0](Shadow) D0000h-D3FFFh: %[62:1-0](Shadow) |
|||
C4000h-C7FFFh: %[61:3-2](Shadow) D4000h-D7FFFh: %[62:3-2](Shadow) |
|||
C8000h-CBFFFh: %[61:5-4](Shadow) D8000h-DBFFFh: %[62:5-4](Shadow) |
|||
CC000h-CFFFFh: %[61:7-6](Shadow) DC000h-DFFFFh: %[62:7-6](Shadow) |
|||
E0000h-EFFFFh: %[63:7-6](Shadow) F0000h-FFFFFh: %[63:5-4](Shadow) |
|||
Memory Hole: %[63:3-2]|none;512K-640K;15M-16M (1M);14M-16M (2M)| |
|||
SMI Mapping Control: %[63:1-0]|disable SMI address redirection;allow access DRAM Axxxx-Bxxxx for both |
|||
normal and SMI cycles;reserved;allow SMI Axxxx-Bxxxx DRAM access| |
|||
Offset 64 - DRAM Timing for Banks 0,1 |
|||
if DRAM is EDO/FPG: |
|||
RAS Precharge Time: %[64:7+3]dT Pulse Width: %[64:6+4]dT |
|||
CAS Pulse Width: Read = %[64:5-4]dT Write = %[64:3+1]dT |
|||
MA-to-CAS Delay: %[64:2+1]dT RAS to MA Delay: %[64:1+1]dT |
|||
if DRAM is SDRAM: |
|||
Precharge Command to Activate Command Period, Trp: %[64:7+2]dT |
|||
Activate Command to Precharge Command Period, Tras: %[64:6+5]dT |
|||
CAS Latency: %[64:5-4]|SDRAM 1T or SDRAM-II n/a;SDRAM 2T or SDRAM-II n/a;SDRAM 3T or SDRAM-II 2T,2.5T;SDRAM n/a or SDRAM-II 3T| |
|||
DDR Write Enable (SDRAM-II Only): %[64:3]e |
|||
ACTIVE Command to CMD Command Period: %[64:2+2]dT |
|||
Bank Interleave: %[64:1-0]|no interleave;2-way;4-way;reserved| |
|||
Offset 65 - DRAM Timing for Banks 2,3 |
|||
if DRAM is EDO/FPG: |
|||
RAS Precharge Time: %[65:7+3]dT Pulse Width: %[65:6+4]dT |
|||
CAS Pulse Width: Read = %[65:5-4]dT Write = %[65:3+1]dT |
|||
MA-to-CAS Delay: %[65:2+1]dT RAS to MA Delay: %[65:1+1]dT |
|||
if DRAM is SDRAM: |
|||
Precharge Command to Activate Command Period, Trp: %[65:7+2]dT |
|||
Activate Command to Precharge Command Period, Tras: %[65:6+5]dT |
|||
CAS Latency: %[65:5-4]|SDRAM 1T or SDRAM-II n/a;SDRAM 2T or SDRAM-II n/a;SDRAM 3T or SDRAM-II 2T,2.5T;SDRAM n/a or SDRAM-II 3T| |
|||
DDR Write Enable (SDRAM-II Only): %[65:3]e |
|||
ACTIVE Command to CMD Command Period: %[65:2+2]dT |
|||
Bank Interleave: %[65:1-0]|no interleave;2-way;4-way;reserved| |
|||
Offset 65 - DRAM Timing for Banks 4,5 |
|||
if DRAM is EDO/FPG: |
|||
RAS Precharge Time: %[66:7+3]dT Pulse Width: %[66:6+4]dT |
|||
CAS Pulse Width: Read = %[66:5-4]dT Write = %[66:3+1]dT |
|||
MA-to-CAS Delay: %[66:2+1]dT RAS to MA Delay: %[66:1+1]dT |
|||
if DRAM is SDRAM: |
|||
Precharge Command to Activate Command Period, Trp: %[66:7+2]dT |
|||
Activate Command to Precharge Command Period, Tras: %[66:6+5]dT |
|||
CAS Latency: %[66:5-4]|SDRAM 1T or SDRAM-II n/a;SDRAM 2T or SDRAM-II n/a;SDRAM 3T or SDRAM-II 2T,2.5T;SDRAM n/a or SDRAM-II 3T| |
|||
DDR Write Enable (SDRAM-II Only): %[66:3]e |
|||
ACTIVE Command to CMD Command Period: %[66:2+2]dT |
|||
Bank Interleave: %[66:1-0]|no interleave;2-way;4-way;reserved| |
|||
Offset 68 - DRAM Control |
|||
SDRAM Open Page Control: %[68:7]|always precharge SDRAM banks when accessing |
|||
EDO/FPG DRAMs;SDRAM banks remain active when accessing |
|||
EDO/FPG banks| |
|||
Bank Page Control: %[68:6]|allow only pages of the same bank active;allow pages of different banks to be active| |
|||
EDO Pipeline Burst Rate: X-2-2-2-%[68:5]|2-2-2-2;3-2-2-2| |
|||
EDO Test Mode: %[68:3]e |
|||
Burst Refresh: %[68:2]e |
|||
System Frequency Divider: CPU/PCI Frequency Ratio %[68:1-0]|2x (66MHz);3x (100MHz);2x (66MHz);2.5x (75/83 MHz)| |
|||
Offset 69 - DRAM Clock select |
|||
DRAM Operating Frequency: Same as %[69:7]|CPU Frequency (66/75/83/100 MHz);AGP Frequency (66 MHz)| |
|||
Offset 6A - DRAM Refresh Counter: %[6A]e, %[6A*16+16]d CPUCLKs (valid if enable) |
|||
Offset 6B - DRAM Arbitration Control |
|||
Arbitration Parking Policy: %[6B:7-6]|park at last bus owner;park at CPU side; park at AGP side;reserved| |
|||
Multi-Page Open: %[6B:0]e |
|||
Offset 6C - SDRAM Control |
|||
DRAM Start Cycle: %[6C:6]|concurrent with cache hit detection (for 66MHz);after cache hit detection (for 100MHz)| |
|||
MD-to-HD Pop: %[6C:5]|normal;add 1T latency for 100MHz| |
|||
DDR Write-to-Read Turnaround: %[6C:4+1]dT turnaround |
|||
Single RW Burst Stop Command: %[6C:3]e |
|||
SDRAM Operation Mode Select: %[6C:2-0](SDRAM_Mode) |
|||
Offset 6D - DRAM Drive Setting |
|||
Delay DRAM read Latch: %[6D:6-5]|disable;0.5 ns;1.0 ns;2.0 ns| |
|||
MD Drive: %[6D:4]|8;6| mA |
|||
SDRAM Command Drive: %[6D:3]|16;24| mA CAS# Drive: %[6D:1]|8;12| mA |
|||
MA[2:13]/WE# Drive: %[6D:2]|16;24| mA RAS# Drive: %[6D:0]|16;24| mA |
|||
Offset 6E - ECC Control |
|||
ECC / ECMode select: %[6E:7]|ECC checking and reporting;ECC checking, reporting and correcting| |
|||
Enable (Assert) SERR# on ECC / EC Multi-Bit Error: %[6E:5]Y |
|||
Enable (Assert) SERR# on ECC / EC Single-Bit Error: %[6E:4]Y |
|||
ECC / EC Enable Bank 5/4 (DIMM 2): %[6E:2]e |
|||
ECC / EC Enable Bank 3/2 (DIMM 1): %[6E:1]e |
|||
ECC / EC Enable Bank 1/0 (DIMM 0): %[6E:0]e |
|||
Offset 6F - ECC Status |
|||
Multi-Bit Error Detected: %[6F:7]Y DRAM Bank: %[6F:6-4]d |
|||
Single-Bit Error Detected: %[6F:3]Y DRAM Bank: %[6F:2-0]d |
|||
|
|||
PCI Bus #1 Control |
|||
Offset 70 - PCI Buffer Control |
|||
CPU to PCI Post-Write: %[70:7]e |
|||
PCI Master to DRAM Post-Write: %[70:6]e |
|||
CPU-to-PCI Prefetch: %[70:5]e |
|||
PCI Master to DRAM Prefetch Disable: %[70:4]e |
|||
PCI Master Read Caching: %[70:2]e |
|||
Delay Transaction: %[70:1]e |
|||
Offset 71,72 - CPU to PCI Flow Control |
|||
Dynamic Burst: %[71:7]e PCI I/O Cycle Post Write: %[71:4]e |
|||
Byte Merge: %[71:6]e PCI Burst: %[71:3]e |
|||
PCI Fast Back-to-Back Write: %[71:2]e |
|||
Quick Frame Generation: %[71:1]e |
|||
1 Wait State PCI Cycles: %[71:0]e |
|||
Retry Status: retry occured %[72:7]|less;more| than retry limit (see Retry Limit) |
|||
Retry Timeout Action: %[72:6]|retry forever (record status only);flush buffer for write or return all 1s for read| |
|||
Retry Limit: retry %[72:5-4]|2;16;4;64| times |
|||
Clear Failed Data and Continue Retry: %[72:3]|flush the entire post-write buffer;when data is posting and master (or |
|||
target) abort fails, pop the failed data if any, and keep posting| |
|||
CPU Backoff on PCI Read Retry Failure: %[72:2]e |
|||
Reduce 1T for FRAME# Generation: %[72:1]e |
|||
Offset 73,74 - PCI Master Control |
|||
PCI Master 1-Wait-State Write: %[73:6]|zero;one| wait state TRDY# response |
|||
PCI Master 1-Wait-State Read: %[73:5]|zero;one| wait state TRDY# response |
|||
Prefetch Disable: %[73:4]e |
|||
Assert STOP# after PCI Master Write Timeout: %[73:3]e |
|||
Assert STOP# after PCI Master Read Timeout: %[73:2]e |
|||
LOCK# Function: %[73:1]e |
|||
PCI Master Broken Timer Enable: %[73:0]e |
|||
PCI Master Read Prefetch by Enhance Command: %[74:7]|always prefetch;prefetch only if enhance |
|||
command| |
|||
PCI Master Write Merge: %[74:6]e |
|||
Offset 75,76 - PCI Arbitration |
|||
Arbitration Mechanism: %[75:7]|PCI has priority;fair arbitration between PCI and CPU| |
|||
Arbitration Mode: %[75:6]|REQ-based (at the end of REQ#);frame-based (at #FRAME assertion)| |
|||
Latency Timer: %[75:5-4]d |
|||
PCI Master Bus Time-Out (0 means disable): %[75:3-0*32]d |
|||
PCI #2 Master Access PCI #1 Retry Disconnect: %[76:7]e |
|||
CPU Latency Timer Bit-0: %[76:6]|CPU has at least 1 PCLK time slot when CPU has |
|||
PCI bus;CPU has no time slot| |
|||
Master Priority Rotation Control: Grant CPU after every %[76:5-4]d PCI master |
|||
grant(s) |
|||
Offset 78 - PMU Control |
|||
I/O Port 22 Access: CPU access to I/O address 22h is %[78:7]|passed on to PCI bus;processed internally| |
|||
Suspend Refresh Type: %[78:6]|CBR;self| refresh |
|||
Normal Refresh: %[78:5]|suspend refresh using SUSCLK;normal resresh| |
|||
Dynamic Clock Control: %[78:4]|normal (clock is always running);clock to various internal functional blocks is |
|||
disabled when those blocks are not being used| |
|||
GCKRUN# De-assertion: GCKRUN# %[78:3]|always low;could be high due to PCKRUN#| |
|||
PCKRUN# / GCKRUN# Pin Control: %[78:1]e |
|||
Memory Clock Enable (CKE) Function: %[78:0]e |
|||
|
|||
Graphics Address Relocation Table (GART) / Graphics Aperture (GA) Control |
|||
Offset 83-80 - GART/TLB Control |
|||
Flush Page TLB: %[80:7]e |
|||
PCI#1 Master Address Translation for GA Access: %[80:3]e |
|||
PCI#2 Master Address Translation for GA Access: %[80:2]e |
|||
CPU Address Translation for GA Access: %[80:1]e |
|||
AGP Address Translation for GA Access: %[80:0]e |
|||
Offset 84 - Graphics Aperture Size: %[84:7-5](GA_SIZE) (%[88:1]ed) |
|||
Offset 8B-88 - GA Translation Table Base |
|||
Graphics Aperture Translation Table Base: %[88:31-12]8x |
|||
PCI Master Directly Accesses DRAM if in GART Range: %[88:2]e |
|||
Translation Table is %[88:0]|;non-|cacheable |
|||
!end |
|||
|
|||
!enum Range |
|||
disabled |
|||
64K |
|||
128K |
|||
256K |
|||
512K |
|||
1M |
|||
2M |
|||
4M |
|||
!end |
|||
|
|||
!enum DRAM |
|||
Fast Page Mode DRAM (FPG) |
|||
EDO DRAM (EDO) |
|||
SDRAM Double Data Rate (DDR SDRAM-II) |
|||
SDRAM Single Data Rate (SDR SDRAM) |
|||
!end |
|||
|
|||
!enum EDO_FPG_SDRAM |
|||
8-bit Column Address |
|||
9-bit Column Address |
|||
10-bit Column Address |
|||
11-bit Column Address |
|||
12-bit Column Address |
|||
reserved |
|||
reserved |
|||
reserved |
|||
16Mbit SDRAM |
|||
16Mbit SDRAM |
|||
16Mbit SDRAM |
|||
16Mbit SDRAM |
|||
64Mbit SDRAM |
|||
reserved |
|||
!end |
|||
|
|||
!enum SDRAM_Mode |
|||
normal |
|||
NOP command enable |
|||
All-Banks-Precharge command enable |
|||
MSR enable |
|||
CRB cycle enable |
|||
reserved |
|||
!end |
|||
|
|||
!enum GA_SIZE |
|||
256M |
|||
invalid |
|||
invalid |
|||
invalid |
|||
128M |
|||
invalid |
|||
64M |
|||
32M or less |
|||
!end |
|||
|
|||
!enum Shadow |
|||
read/write disable |
|||
write enable \ |
|||
read enable \ |
|||
read/write enable |
|||
!end |
|||
|
|||
%! end of file |
|||
|
@ -0,0 +1,15 @@ |
|||
%! Detailed register description file for PCICFG.EXE by Ralf Brown |
|||
%! |
|||
%! Filename 53338811.PCI = Vendor 5333h, Device 8811h -- S3 Trio64V+ |
|||
%! Last Edit 9/27/97 by Ralf Brown |
|||
%! |
|||
|
|||
[See file BLANK.PCI for description of formatting specification and how |
|||
to create your own device descriptions.] |
|||
|
|||
!begin |
|||
S3 Trio64V+ registers in detail: |
|||
The Trio64 doesn't seem to use any device-specific registers |
|||
!end |
|||
|
|||
%! end of file |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue