Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

What is the meaning of Local vs Global Enable/Disable A20 (How-tos)

posted by ecm Homepage E-mail, Düsseldorf, Germany, 31.01.2025, 23:40

The specifications says: https://www.phatcode.net/res/219/files/xms20.txt


Global Enable A20 (Function 03h):
---------------------------------

ARGS: AH = 03h
RETS: AX = 0001h if the A20 line is enabled, 0000h otherwise
ERRS: BL = 80h if the function is not implemented
BL = 81h if a VDISK device is detected
BL = 82h if an A20 error occurs

This function attempts to enable the A20 line. It should only be used
by programs which have control of the HMA. The A20 line should be turned
off via Function 04h (Global Disable A20) before a program releases control
of the system.

NOTE: On many machines, toggling the A20 line is a relatively slow
operation.


Global Disable A20 (Function 04h):
----------------------------------

ARGS: AH = 04h
RETS: AX = 0001h if the A20 line is disabled, 0000h otherwise
ERRS: BL = 80h if the function is not implemented
BL = 81h if a VDISK device is detected
BL = 82h if an A20 error occurs
BL = 94h if the A20 line is still enabled

This function attempts to disable the A20 line. It should only be used
by programs which have control of the HMA. The A20 line should be disabled
before a program releases control of the system.

NOTE: On many machines, toggling the A20 line is a relatively slow
operation.


Local Enable A20 (Function 05h):
--------------------------------

ARGS: AH = 05h
RETS: AX = 0001h if the A20 line is enabled, 0000h otherwise
ERRS: BL = 80h if the function is not implemented
BL = 81h if a VDISK device is detected
BL = 82h if an A20 error occurs

This function attempts to enable the A20 line. It should only be used
by programs which need direct access to extended memory. Programs which use
this function should call Function 06h (Local Disable A20) before releasing
control of the system.

NOTE: On many machines, toggling the A20 line is a relatively slow
operation.


Local Disable A20 (Function 06h):
---------------------------------

ARGS: AH = 06h
RETS: AX = 0001h if the function succeeds, 0000h otherwise
ERRS: BL = 80h if the function is not implemented
BL = 81h if a VDISK device is detected
BL = 82h if an A20 error occurs
BL = 94h if the A20 line is still enabled

This function cancels a previous call to Function 05h (Local Enable
A20). It should only be used by programs which need direct access to
extended memory. Previous calls to Function 05h must be canceled before
releasing control of the system.

NOTE: On many machines, toggling the A20 line is a relatively slow
operation.

---
l

 

Complete thread:

Back to the forum
Board view  Mix view
22287 Postings in 2062 Threads, 399 registered users, 205 users online (1 registered, 204 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum