add directory docs
This commit is contained in:
27
docs/interrupts/inter61/86BUGS.DOC
Normal file
27
docs/interrupts/inter61/86BUGS.DOC
Normal file
@@ -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.]
|
||||
3004
docs/interrupts/inter61/86BUGS.LST
Normal file
3004
docs/interrupts/inter61/86BUGS.LST
Normal file
File diff suppressed because it is too large
Load Diff
BIN
docs/interrupts/inter61/86BUGS04.ZIP
Normal file
BIN
docs/interrupts/inter61/86BUGS04.ZIP
Normal file
Binary file not shown.
1259
docs/interrupts/inter61/BIBLIO.LST
Normal file
1259
docs/interrupts/inter61/BIBLIO.LST
Normal file
File diff suppressed because it is too large
Load Diff
36
docs/interrupts/inter61/CATEGORY.KEY
Normal file
36
docs/interrupts/inter61/CATEGORY.KEY
Normal file
@@ -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
|
||||
2015
docs/interrupts/inter61/CMOS.LST
Normal file
2015
docs/interrupts/inter61/CMOS.LST
Normal file
File diff suppressed because it is too large
Load Diff
494
docs/interrupts/inter61/COMBINE.ASM
Normal file
494
docs/interrupts/inter61/COMBINE.ASM
Normal file
@@ -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
|
||||
BIN
docs/interrupts/inter61/COMBINE.COM
Normal file
BIN
docs/interrupts/inter61/COMBINE.COM
Normal file
Binary file not shown.
38
docs/interrupts/inter61/COMBINE.DOC
Normal file
38
docs/interrupts/inter61/COMBINE.DOC
Normal file
@@ -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)
|
||||
2178
docs/interrupts/inter61/FARCALL.LST
Normal file
2178
docs/interrupts/inter61/FARCALL.LST
Normal file
File diff suppressed because it is too large
Load Diff
10
docs/interrupts/inter61/FILE_ID.DIZ
Normal file
10
docs/interrupts/inter61/FILE_ID.DIZ
Normal 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.
|
||||
1074
docs/interrupts/inter61/GLOSSARY.LST
Normal file
1074
docs/interrupts/inter61/GLOSSARY.LST
Normal file
File diff suppressed because it is too large
Load Diff
BIN
docs/interrupts/inter61/HINTSRCH.ZIP
Normal file
BIN
docs/interrupts/inter61/HINTSRCH.ZIP
Normal file
Binary file not shown.
3563
docs/interrupts/inter61/I2C.LST
Normal file
3563
docs/interrupts/inter61/I2C.LST
Normal file
File diff suppressed because it is too large
Load Diff
BIN
docs/interrupts/inter61/II.ZIP
Normal file
BIN
docs/interrupts/inter61/II.ZIP
Normal file
Binary file not shown.
BIN
docs/interrupts/inter61/IL2ME102.ZIP
Normal file
BIN
docs/interrupts/inter61/IL2ME102.ZIP
Normal file
Binary file not shown.
BIN
docs/interrupts/inter61/ILINA100.ZIP
Normal file
BIN
docs/interrupts/inter61/ILINA100.ZIP
Normal file
Binary file not shown.
723
docs/interrupts/inter61/INT.C
Normal file
723
docs/interrupts/inter61/INT.C
Normal file
@@ -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);
|
||||
}
|
||||
BIN
docs/interrupts/inter61/INT.COM
Normal file
BIN
docs/interrupts/inter61/INT.COM
Normal file
Binary file not shown.
BIN
docs/interrupts/inter61/INT2GUID.ZIP
Normal file
BIN
docs/interrupts/inter61/INT2GUID.ZIP
Normal file
Binary file not shown.
BIN
docs/interrupts/inter61/INT2HLP.ZIP
Normal file
BIN
docs/interrupts/inter61/INT2HLP.ZIP
Normal file
Binary file not shown.
BIN
docs/interrupts/inter61/INT2IPF.ZIP
Normal file
BIN
docs/interrupts/inter61/INT2IPF.ZIP
Normal file
Binary file not shown.
BIN
docs/interrupts/inter61/INT2QH.ZIP
Normal file
BIN
docs/interrupts/inter61/INT2QH.ZIP
Normal file
Binary file not shown.
BIN
docs/interrupts/inter61/INT2RTF.ZIP
Normal file
BIN
docs/interrupts/inter61/INT2RTF.ZIP
Normal file
Binary file not shown.
BIN
docs/interrupts/inter61/INT2TPH.ZIP
Normal file
BIN
docs/interrupts/inter61/INT2TPH.ZIP
Normal file
Binary file not shown.
BIN
docs/interrupts/inter61/INT2WHLP.ZIP
Normal file
BIN
docs/interrupts/inter61/INT2WHLP.ZIP
Normal file
Binary file not shown.
1629
docs/interrupts/inter61/INTERRUP.1ST
Normal file
1629
docs/interrupts/inter61/INTERRUP.1ST
Normal file
File diff suppressed because it is too large
Load Diff
9492
docs/interrupts/inter61/INTERRUP.A
Normal file
9492
docs/interrupts/inter61/INTERRUP.A
Normal file
File diff suppressed because it is too large
Load Diff
9839
docs/interrupts/inter61/INTERRUP.B
Normal file
9839
docs/interrupts/inter61/INTERRUP.B
Normal file
File diff suppressed because it is too large
Load Diff
9446
docs/interrupts/inter61/INTERRUP.C
Normal file
9446
docs/interrupts/inter61/INTERRUP.C
Normal file
File diff suppressed because it is too large
Load Diff
7948
docs/interrupts/inter61/INTERRUP.D
Normal file
7948
docs/interrupts/inter61/INTERRUP.D
Normal file
File diff suppressed because it is too large
Load Diff
10000
docs/interrupts/inter61/INTERRUP.E
Normal file
10000
docs/interrupts/inter61/INTERRUP.E
Normal file
File diff suppressed because it is too large
Load Diff
7470
docs/interrupts/inter61/INTERRUP.F
Normal file
7470
docs/interrupts/inter61/INTERRUP.F
Normal file
File diff suppressed because it is too large
Load Diff
9112
docs/interrupts/inter61/INTERRUP.G
Normal file
9112
docs/interrupts/inter61/INTERRUP.G
Normal file
File diff suppressed because it is too large
Load Diff
7322
docs/interrupts/inter61/INTERRUP.H
Normal file
7322
docs/interrupts/inter61/INTERRUP.H
Normal file
File diff suppressed because it is too large
Load Diff
3714
docs/interrupts/inter61/INTERRUP.I
Normal file
3714
docs/interrupts/inter61/INTERRUP.I
Normal file
File diff suppressed because it is too large
Load Diff
BIN
docs/interrupts/inter61/INTERRUP.ICO
Normal file
BIN
docs/interrupts/inter61/INTERRUP.ICO
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 766 B |
9201
docs/interrupts/inter61/INTERRUP.J
Normal file
9201
docs/interrupts/inter61/INTERRUP.J
Normal file
File diff suppressed because it is too large
Load Diff
6210
docs/interrupts/inter61/INTERRUP.K
Normal file
6210
docs/interrupts/inter61/INTERRUP.K
Normal file
File diff suppressed because it is too large
Load Diff
9449
docs/interrupts/inter61/INTERRUP.L
Normal file
9449
docs/interrupts/inter61/INTERRUP.L
Normal file
File diff suppressed because it is too large
Load Diff
9968
docs/interrupts/inter61/INTERRUP.M
Normal file
9968
docs/interrupts/inter61/INTERRUP.M
Normal file
File diff suppressed because it is too large
Load Diff
9514
docs/interrupts/inter61/INTERRUP.N
Normal file
9514
docs/interrupts/inter61/INTERRUP.N
Normal file
File diff suppressed because it is too large
Load Diff
8246
docs/interrupts/inter61/INTERRUP.O
Normal file
8246
docs/interrupts/inter61/INTERRUP.O
Normal file
File diff suppressed because it is too large
Load Diff
9205
docs/interrupts/inter61/INTERRUP.P
Normal file
9205
docs/interrupts/inter61/INTERRUP.P
Normal file
File diff suppressed because it is too large
Load Diff
135
docs/interrupts/inter61/INTERRUP.PRI
Normal file
135
docs/interrupts/inter61/INTERRUP.PRI
Normal file
@@ -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.
|
||||
9866
docs/interrupts/inter61/INTERRUP.Q
Normal file
9866
docs/interrupts/inter61/INTERRUP.Q
Normal file
File diff suppressed because it is too large
Load Diff
5171
docs/interrupts/inter61/INTERRUP.R
Normal file
5171
docs/interrupts/inter61/INTERRUP.R
Normal file
File diff suppressed because it is too large
Load Diff
BIN
docs/interrupts/inter61/INTHLP10.ZIP
Normal file
BIN
docs/interrupts/inter61/INTHLP10.ZIP
Normal file
Binary file not shown.
1671
docs/interrupts/inter61/INTLIST.E
Normal file
1671
docs/interrupts/inter61/INTLIST.E
Normal file
File diff suppressed because it is too large
Load Diff
2376
docs/interrupts/inter61/INTPRINT.C
Normal file
2376
docs/interrupts/inter61/INTPRINT.C
Normal file
File diff suppressed because it is too large
Load Diff
BIN
docs/interrupts/inter61/INTPRINT.COM
Normal file
BIN
docs/interrupts/inter61/INTPRINT.COM
Normal file
Binary file not shown.
293
docs/interrupts/inter61/INTPRINT.DOC
Normal file
293
docs/interrupts/inter61/INTPRINT.DOC
Normal file
@@ -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".
|
||||
|
||||
BIN
docs/interrupts/inter61/INTSUM16.ZIP
Normal file
BIN
docs/interrupts/inter61/INTSUM16.ZIP
Normal file
Binary file not shown.
BIN
docs/interrupts/inter61/IVIEW102.ZIP
Normal file
BIN
docs/interrupts/inter61/IVIEW102.ZIP
Normal file
Binary file not shown.
3606
docs/interrupts/inter61/MEMORY.LST
Normal file
3606
docs/interrupts/inter61/MEMORY.LST
Normal file
File diff suppressed because it is too large
Load Diff
2190
docs/interrupts/inter61/MSR.LST
Normal file
2190
docs/interrupts/inter61/MSR.LST
Normal file
File diff suppressed because it is too large
Load Diff
30
docs/interrupts/inter61/NEEDHELP.TXT
Normal file
30
docs/interrupts/inter61/NEEDHELP.TXT
Normal file
@@ -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.
|
||||
|
||||
|
||||
|
||||
33936
docs/interrupts/inter61/OPCODES.LST
Normal file
33936
docs/interrupts/inter61/OPCODES.LST
Normal file
File diff suppressed because it is too large
Load Diff
262
docs/interrupts/inter61/OVERVIEW.LST
Normal file
262
docs/interrupts/inter61/OVERVIEW.LST
Normal file
@@ -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
|
||||
BIN
docs/interrupts/inter61/PGP-SIGS.ZIP
Normal file
BIN
docs/interrupts/inter61/PGP-SIGS.ZIP
Normal file
Binary file not shown.
9789
docs/interrupts/inter61/PORTS.A
Normal file
9789
docs/interrupts/inter61/PORTS.A
Normal file
File diff suppressed because it is too large
Load Diff
9548
docs/interrupts/inter61/PORTS.B
Normal file
9548
docs/interrupts/inter61/PORTS.B
Normal file
File diff suppressed because it is too large
Load Diff
4556
docs/interrupts/inter61/PORTS.C
Normal file
4556
docs/interrupts/inter61/PORTS.C
Normal file
File diff suppressed because it is too large
Load Diff
BIN
docs/interrupts/inter61/RB2NG116.ZIP
Normal file
BIN
docs/interrupts/inter61/RB2NG116.ZIP
Normal file
Binary file not shown.
487
docs/interrupts/inter61/RBROWN.TXT
Normal file
487
docs/interrupts/inter61/RBROWN.TXT
Normal file
@@ -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<73> 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
|
||||
18
docs/interrupts/inter61/README.1
Normal file
18
docs/interrupts/inter61/README.1
Normal file
@@ -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
|
||||
10
docs/interrupts/inter61/README.2
Normal file
10
docs/interrupts/inter61/README.2
Normal file
@@ -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
|
||||
17
docs/interrupts/inter61/README.3
Normal file
17
docs/interrupts/inter61/README.3
Normal file
@@ -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
|
||||
21
docs/interrupts/inter61/README.4
Normal file
21
docs/interrupts/inter61/README.4
Normal file
@@ -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
|
||||
40
docs/interrupts/inter61/README.5
Normal file
40
docs/interrupts/inter61/README.5
Normal file
@@ -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
|
||||
50
docs/interrupts/inter61/README.6
Normal file
50
docs/interrupts/inter61/README.6
Normal file
@@ -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.
|
||||
76
docs/interrupts/inter61/README.NOW
Normal file
76
docs/interrupts/inter61/README.NOW
Normal file
@@ -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
|
||||
|
||||
25
docs/interrupts/inter61/SAMPLE.FLT
Normal file
25
docs/interrupts/inter61/SAMPLE.FLT
Normal file
@@ -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
|
||||
19
docs/interrupts/inter61/SAMPLE1.FLT
Normal file
19
docs/interrupts/inter61/SAMPLE1.FLT
Normal file
@@ -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
|
||||
17
docs/interrupts/inter61/SAMPLE2.FLT
Normal file
17
docs/interrupts/inter61/SAMPLE2.FLT
Normal file
@@ -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
|
||||
291
docs/interrupts/inter61/SMM.LST
Normal file
291
docs/interrupts/inter61/SMM.LST
Normal file
@@ -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)
|
||||
184
docs/interrupts/inter61/TABLES.LST
Normal file
184
docs/interrupts/inter61/TABLES.LST
Normal file
@@ -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)
|
||||
BIN
docs/interrupts/inter61/VIEWINTL.ZIP
Normal file
BIN
docs/interrupts/inter61/VIEWINTL.ZIP
Normal file
Binary file not shown.
BIN
docs/interrupts/inter61/WH_ED122.ZIP
Normal file
BIN
docs/interrupts/inter61/WH_ED122.ZIP
Normal file
Binary file not shown.
112
docs/interrupts/inter61/_ADVERT.TXT
Normal file
112
docs/interrupts/inter61/_ADVERT.TXT
Normal file
@@ -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).
|
||||
|
||||
Reference in New Issue
Block a user