⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 farcall.lst

📁 A Programmer s Reference to BIOS, DOS, and Third-Party Calls
💻 LST
📖 第 1 页 / 共 5 页
字号:
FAR CALL Interface List		Release 61		Last change 16jul00
Copyright (c) 1989-1999,2000 Ralf Brown

=============================================
>CALL 0000h:0000h - Sample Entry
>Program: description of the program(s) providing the API
>InstallCheck:	how to determine CALL address if variable, whether it is
>	  available if address is fixed
>Note:	any notes related to the API
>SeeAlso: related APIs, and interrupt entries for this API in INTERRUP.*
>
>Call entry point with:
>	input registers
>Return: result registers
>
>Format of data:
>Offset	Size	Description
> 00h	...	...
=============================================

--------D-@00600000--------------------------
CALL 0060h:0000h - Eagle MS-DOS v1.25 IO.SYS - INITIALIZE
InstallCheck:	MS-DOS v1.25 must be installed
Note:	this function should only be called by MSDOS.SYS
SeeAlso: @0060h:0003h,@0060h:0039h
--------D-@00600003--------------------------
CALL 0060h:0003h - Eagle MS-DOS v1.25 IO.SYS - CHECK FOR KEYSTROKE
InstallCheck:	MS-DOS v1.25 must be installed
Note:	does not return extended keystrokes
SeeAlso: @0060h:0000h,@0060h:0006h,@0060h:0027h

(Table F0001)
Call Eagle MS-DOS entry point 0003h with:
	nothing
Return: ZF set if no key
	ZF clear if keystroke available
	    AL = keystroke
--------D-@00600006--------------------------
CALL 0060h:0006h - Eagle MS-DOS v1.25 IO.SYS - WAIT FOR KEYSTROKE
InstallCheck:	MS-DOS v1.25 must be installed
Notes:	if an extended keystroke is available, only the low byte is returned,
	  and this function must be called again to get the high byte
	the BIOS keycode 0000h (Ctrl-Break) is returned as 00h+FFh to avoid
	  the ambiguity that might be caused by returning the 00h high byte
SeeAlso: @0060h:0000h,@0060h:0003h,@0060h:0027h

(Table F0002)
Call Eagle MS-DOS entry point 0006h with:
	nothing
Return: AL = keystroke
	flags modified
--------D-@00600009--------------------------
CALL 0060h:0009h - Eagle MS-DOS v1.25 IO.SYS - OUTPUT CHARACTER TO SCREEN
InstallCheck:	MS-DOS v1.25 must be installed
Note:	this entry point supports most of the ANSI.SYS control sequences,
	  plus several additional escape sequences
SeeAlso: @0060h:0000h,@0060h:0003h,@0060h:000Ch

(Table F0003)
Call Eagle MS-DOS entry point 0009h with:
	AL = character to output
Return: flags modified
--------D-@0060000C--------------------------
CALL 0060h:000Ch - Eagle MS-DOS v1.25 IO.SYS - OUTPUT CHARACTER TO PRINTER
InstallCheck:	MS-DOS v1.25 must be installed
Note:	this entry point is able, if set by configuration (see @0060h:0039h),
	  to strip linefeed characters following carriage returns
SeeAlso: @0060h:0000h,@0060h:0009h

(Table F0004)
Call Eagle MS-DOS entry point 000Ch with:
	AL = character to be printed
Return: flags modified
--------D-@0060000F--------------------------
CALL 0060h:000Fh - Eagle MS-DOS v1.25 IO.SYS - INPUT CHAR FROM AUX: DEVICE
InstallCheck:	MS-DOS v1.25 must be installed
Note:	if the configured AUX: device is a parallel port, this call always
	  returns a Ctrl-Z as the "read" character; Ctrl-Z is also returned
	  if the user presses Esc or Ctrl-Break while waiting for a character
	  to arrive on a serial port
SeeAlso: @0060h:0000h

(Table F0005)
Call Eagle MS-DOS entry point 000Fh with:
	nothing
Return: AL = received character
--------D-@00600012--------------------------
CALL 0060h:0012h - Eagle MS-DOS v1.25 IO.SYS - OUTPUT CHAR TO AUX: DEVICE
InstallCheck:	MS-DOS v1.25 must be installed
Note:	if the port is busy, this function waits until the port becomes
	  available or the user presses Esc or Ctrl-Break
SeeAlso: @0060h:0000h

(Table F0006)
Call Eagle MS-DOS entry point 0012h with:
	AL = character to output
Return: flags modified
--------D-@00600015--------------------------
CALL 0060h:0015h - Eagle MS-DOS v1.25 IO.SYS - READ ABSOLUTE SECTOR(S)
InstallCheck:	MS-DOS v1.25 must be installed
SeeAlso: @0060h:0000h,@0060h:0018h,@0060h:001Bh

(Table F0007)
Call Eagle MS-DOS entry point 0015h with:
	AL = drive table number
	ES:BX -> buffer
	CX = number of sectors to read
	DX = logical sector number of first sector
	AH = verify flag
Return: CF clear if successful
	CF set on error
	    AL = error code
		0Ch drive table number out of range
Note:	the drive number in AL is *not* the logical DOS drive number, but
	  the number of an internal data table; multiple data tables, each
	  describing a distinct disk format, may be shared by one logical
	  drive
--------D-@00600018--------------------------
CALL 0060h:0018h - Eagle MS-DOS v1.25 IO.SYS - WRITE ABSOLUTE SECTOR(S)
InstallCheck:	MS-DOS v1.25 must be installed
SeeAlso: @0060h:0000h,@0060h:0015h,@0060h:001Bh

(Table F0008)
Call Eagle MS-DOS entry point 0018h with:
	AL = drive table number
	ES:BX -> data to be written
	CX = number of sectors to write
	DX = logical sector number of first sector
	AH = verify flag
Return: CF clear if successful
	CF set on error
	    AL = error code
		0Ch drive table number out of range
Note:	the drive number in AL is *not* the logical DOS drive number, but
	  the number of an internal data table; multiple data tables, each
	  describing a distinct disk format, may be shared by one logical
	  drive
--------D-@0060001B--------------------------
CALL 0060h:001Bh - Eagle MS-DOS v1.25 IO.SYS - DETERMINE DISK FORMAT
InstallCheck:	MS-DOS v1.25 must be installed
SeeAlso: @0060h:0000h,@0060h:0015h,@0060h:002Ah

(Table F0009)
Call Eagle MS-DOS entry point 001Bh with:
	AL = DOS drive number
Return: CF clear if successful
	    AL = drive table number
	    AH = ??? flag
		00h ???
		FFh ???
	CF set on error
	    AL = error code
		02h ???
		0Ch unrecognized format
--------D-@0060001E--------------------------
CALL 0060h:001Eh - Eagle MS-DOS v1.25 IO.SYS - SET DAY COUNT
InstallCheck:	MS-DOS v1.25 must be installed
SeeAlso: @0060h:0000h,@0060h:0021h,@0060h:0024h

(Table F0010)
Call Eagle MS-DOS entry point 001Eh with:
	AX = day count
Return: nothing
--------D-@00600021--------------------------
CALL 0060h:0021h - Eagle MS-DOS v1.25 IO.SYS - SET SYSTEM TIME
InstallCheck:	MS-DOS v1.25 must be installed
SeeAlso: @0060h:0000h,@0060h:001Eh,@0060h:0024h

(Table F0011)
Call Eagle MS-DOS entry point 0021h with:
	CH = hours
	CL = minutes
	DH = seconds
	DL = hundredths
Return: flags modified
--------D-@00600024--------------------------
CALL 0060h:0024h - Eagle MS-DOS v1.25 IO.SYS - READ SYSTEM TIME
InstallCheck:	MS-DOS v1.25 must be installed
SeeAlso: @0060h:0000h,@0060h:001Eh,@0060h:0021h

(Table F0012)
Call Eagle MS-DOS entry point 0024h with:
	nothing
Return: AX = day count
	CH = hours
	CL = minutes
	DH = seconds
	DL = hundredths
--------D-@00600027--------------------------
CALL 0060h:0027h - Eagle MS-DOS v1.25 IO.SYS - CLEAR KEYBOARD BUFFER
InstallCheck:	MS-DOS v1.25 must be installed
SeeAlso: @0060h:0000h,@0060h:0003h,@0060h:0006h

(Table F0013)
Call Eagle MS-DOS entry point 0027h with:
	nothing
Return: ZF set
--------D-@0060002A--------------------------
CALL 0060h:002Ah - Eagle MS-DOS v1.25 IO.SYS - SEARCH FOR NEXT DISK FORMAT
InstallCheck:	MS-DOS v1.25 must be installed
SeeAlso: @0060h:0000h,@0060h:001Bh

(Table F0014)
Call Eagle MS-DOS entry point 002Ah with:
	AL = drive table number
Return: AL = next drive table number with matching disk sector size and media
	      ID byte
--------D-@00600039--------------------------
CALL 0060h:0039h - Eagle MS-DOS v1.25 IO.SYS - CONFIGURE FROM SYSINFO.SYS
InstallCheck:	MS-DOS v1.25 must be installed
Note:	reads the first 144 bytes of SYSINFO.SYS from the current drive into
	  an internal configuration buffer
SeeAlso: @0060h:0000h
--------V-@C0000003--------------------------
CALL C000h:0003h - VIDEO BIOS INITIALIZATION
InstallCheck:	C000h:0000h must contain the word AA55h and the 
		  512*BYTE[C000h:0002h] bytes must sum to 00h (mod 256)
Note:	is normally called only by the System ROM BIOS initialization code
--------V-@C0000064--------------------------
CALL C000h:0064h U - ATI Mach32 VIDEO BIOS - ???
InstallCheck: ATI Mach32 video board must be installed
SeeAlso: @C000h:0068h"Mach32",@C000h:006Ch,@C000h:0070h

(Table F0015)
Call ATI Mach32 entry point with:
	AL = function
	    00h ???
	    01h,02h ???
	    11h,12h ???
	    21h,22h ???
	    41h,42h ???
	    81h,82h ???
Return: CF clear if successful
	CF set on error
--------V-@C0000064--------------------------
CALL C000h:0064h U - ATI Mach64 VIDEO BIOS - ALTERNATE INT 10/AH=A0h (IRET)
InstallCheck: ATI Mach64 video board must be installed
SeeAlso: @C000h:0068h"Mach64",INT 10/AH=A0h"Mach64"
--------V-@C0000068--------------------------
CALL C000h:0068h U - ATI Mach32 VIDEO BIOS - ???
InstallCheck: ATI Mach32 video board must be installed
SeeAlso: @C000h:0064h"Mach32",@C000h:006Ch,@C000h:0070h

(Table F0016)
Call ATI Mach32 entry point with:
	AL = ??? (00h-02h)
	???
Return: ???
--------V-@C0000068--------------------------
CALL C000h:0068h U - ATI Mach64 VIDEO BIOS - ALTERNATE INT 10/AH=A0h (RETF)
InstallCheck: ATI Mach64 video board must be installed
SeeAlso: @C000h:0064h"Mach64",INT 10/AH=A0h"Mach64"
--------V-@C000006C--------------------------
CALL C000h:006Ch - ATI Mach32 VIDEO BIOS - 
InstallCheck: ATI Mach32 video board must be installed
SeeAlso: @C000h:0064h,@C000h:0068h,@C000h:0070h

(Table F0017)
Call ATI Mach32 entry point with:
	AL = function
	    00h get ???
		Return: AX = ??? (019Eh)
	    01h get ??? information
		ES:BX -> buffer for ??? information (see #F0018)
		Return: buffer filled
	    02h get ???
		Return: AX = ??? (0250h)
			BX = ??? (0A00h)
			CX = ??? (0200h)
			DX = ??? (0003h)
Return: CF clear if successful
	CF set if invalid function
	all other registers preserved
Note:	officially (Programmer's Reference Guide), interrupts should be
	  disabled (CLI) during a function 01h call

Format of ATI Mach32 ??? information:
Offset	Size	Description	(Table F0018)
 00h	WORD	number of bytes of data returned (0116h for tested BIOS)
 02h  2 BYTEs	??? (00h 00h and 00h 05h seen)
 04h	WORD	offset of video mode records??? (0028h)
 06h	BYTE	length of one video mode record??? (22h)
 07h	BYTE	???
 08h	BYTE	??? (00h/01h, reflects bit 1 of port 36EEh)
 09h	BYTE	??? (01h)
 0Ah	BYTE	???
 0Bh	BYTE	memory size
		00h = 256K, 01h = 512K, 02h = 1024K, 03h = 2M, 04h = 4M
 0Ch	BYTE	???
 0Dh	BYTE	???
 0Eh	BYTE	???
 0Fh	BYTE	??? (bits 6-4 of port 42E8h)
 10h	BYTE	???
 11h	BYTE	???
 12h	BYTE	???
 13h	BYTE	???
 14h	WORD	???
 16h	BYTE	???
 17h	BYTE	???
 18h	BYTE	???
 19h 14 BYTEs	unused
 27h	BYTE	scratch byte used by ROM code
 28h 34N BYTEs	??? video mode records (see #F0019)
SeeAlso: #F0017

Format of ATI Mach32 ??? video mode record:
Offset	Size	Description	(Table F0019)
 00h	WORD	horizontal resolution in pixels
 02h	WORD	vertical resolution in pixels
 04h 30 BYTEs	???
SeeAlso: #F0018
--------V-@C0000070--------------------------
CALL C000h:0070h U - ATI Mach32 VIDEO BIOS - ???
InstallCheck: ATI Mach32 video board must be installed
SeeAlso: @C000h:0064h,@C000h:0068h,@C000h:006Ch

(Table F0020)
Call ATI Mach32 entry point with:
	AH = function
	    00h ???
	    01h ???
	    02h ???
		AL = subfunction
		    00h ???
		    01h ???
	    03h ???
		AL = ??? (00h/nonzero)
Return: CF clear if successful
	CF set on error
--------B-@F000E739--------------------------
CALL F000h:E739h - ROM BIOS INT 14 HANDLER
InstallCheck:	present if BIOS is 100% compatible with original IBM PC
--------B-@F000E82E--------------------------
CALL F000h:E82Eh - ROM BIOS INT 16 HANDLER
InstallCheck:	present if BIOS is 100% compatible with original IBM PC
--------B-@F000EC59--------------------------
CALL F000h:EC59h - ROM BIOS INT 13 HANDLER
InstallCheck:	present if BIOS is 100% compatible with original IBM PC
--------B-@F000EFD2--------------------------
CALL F000h:EFD2h - ROM BIOS INT 17 HANDLER
InstallCheck:	present if BIOS is 100% compatible with original IBM PC
--------B-@F000F065--------------------------
CALL F000h:F065h - ROM BIOS INT 10 HANDLER
InstallCheck:	present if BIOS is 100% compatible with original IBM PC
--------B-@F000F841--------------------------
CALL F000h:F841h - ROM BIOS INT 12 HANDLER
InstallCheck:	present if BIOS is 100% compatible with original IBM PC

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -