Table of Contents
Note: This API call is for DOS and Win16 personality only. Use Family API for portability.
Int 21H, AH=63H, AL=00H
Version
2.25, 3.2 and higher
Brief
GET LEAD BYTE TABLE ADDRESS
Family API
Input
- AX = 6300h
Return
- CF clear if successful
- DS:SI → lead byte table (see #01746)
- CF set on error
- AX = error code (01h) (see #01680 at AH=59h/BX=0000h)
note: NO CF flag used in some versions
- AL = error code
- 00h successful all other registers except CS:IP and SS:SP destroyed
- FFh not supported
Macro
Notes
Does not preserve any registers other than SS:SP.
Probably identical to AH=63h/AL=00h for DOS 2.25, but error handling differs
The US version of MS-DOS 3.30 treats this as an unused function, setting AL=00h and returning immediately, WITHOUT setting DS:SI; only the Far East versions of MS-DOS 3.2 and 3.3 supported this call.
The US version of DOS 4.0+ accepts this function, but returns an empty list.
IBM DOS 6.1 SYS.COM assumes that CF is set on error
To get the DBCS lead byte table without complicated DOS version checks, set the DS:SI registers to 0:0 before calling the API. If a valid DBCS lead byte table is returned, the DS:SI registers will be modified (the table can’t possibly be stored at 0:0). If DS:SI are still 0:0, the API is not implemented, the DOS is not a Far East version, and hence there are no double-byte characters and no lead byte table.
Format of double-byte character set lead byte table entry:
Offset | Size | Description |
---|---|---|
00h | 2 BYTEs | low/high ends of a range of leading byte of double-byte chars |
02h | 2 BYTEs | low/high ends of a range of leading byte of double-byte chars |
… | ||
N | 2 BYTEs | 00h,00h end flag |
See also
Note
Text based on Ralf Brown Interrupt List Release 61
osFree Macro Library | |
---|---|
Video I/O | @SetMode @SetCurSz @SetCurPos @GetCur @SetPage @ScrollUp @ScrollDn @Scroll @GetChAtr @PutChAtr @PutCh @SetPalet @SetColor @SetDot @GetDot @WrtTTY @VideoState @GetMode @GetDisplay @GetVideoState @GetEGAInfo @Cls |
Hardware info | @Equipment @MemSize |
Serial I/O | @AuxInit @AuxSendChar @AuxRecieveChar @AuxStatus |
Tape I/O | @TapeOn @TapeOff @TapeRead @TapeWrite |
Keyboard I/O | @KbdStatus @CharIn @CharPeek |
Printer I/O | @PrnPrint @PrnInit @PrnStatus |
Disk I/O | @DskReset @DskStatus @DskRead @DskWrite @DskVerify @DskFormat |
Date and Time | @SetTime @GetTime |
Mouse | @MouInit @MouShowPointer @MouStatus @MouSetPos @MouSetMickey @MouRegion |
Memory manager | @ModBlok SET_BLOCK |