You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
361 lines
13 KiB
361 lines
13 KiB
|
|
.xlist
|
|
;========================================================================;
|
|
; ;
|
|
; GLOBAL EQUATION ;
|
|
; ;
|
|
;========================================================================;
|
|
|
|
if WINNT
|
|
Version equ '5.0'
|
|
else
|
|
Version equ '1.20a.'
|
|
endif
|
|
|
|
false = 0
|
|
true = not false
|
|
hWin31Sw = true
|
|
GetSwitch = true
|
|
Kbd101On = true
|
|
ChkW32Trident = true ; card check(true), switch(false)
|
|
|
|
HotKey = true ; support(true)
|
|
AltHotKey = true ; support(true)
|
|
VirtualKey = false ; 84 kbd
|
|
|
|
KseVga = true
|
|
AtiVga = true
|
|
|
|
if1
|
|
%OUT *****************************************************************
|
|
if Debug
|
|
%OUT DEBUGGING mode
|
|
endif
|
|
if ComFile
|
|
%OUT .COM file type
|
|
else
|
|
%OUT .SYS file type
|
|
endif
|
|
if HotKey
|
|
%OUT Hot_key support
|
|
endif
|
|
%OUT *****************************************************************
|
|
endif
|
|
|
|
|
|
;------------------------------------------------------------------------
|
|
DATA SEGMENT AT 0
|
|
ORG 8*4
|
|
rRtcInt dd ? ; INT 8
|
|
ORG 9*4
|
|
rKbInt dd ? ; INT 9
|
|
ORG 10h*4
|
|
rVideoInt dd ? ; INT 10
|
|
ORG 15h*4
|
|
rCasetInt dd ? ; INT 15
|
|
ORG 16h*4
|
|
rKbioInt dd ? ; INT 16
|
|
ORG 17h*4
|
|
rPrinter dd ? ; INT 17
|
|
ORG 1dh*4
|
|
rVdParm dd ? ; INT 1D
|
|
ORG 2fh*4
|
|
rInt2f dd ? ; INT 2F
|
|
ORG 410h
|
|
rEquip db ?
|
|
ORG 449h
|
|
rCrtMode db ? ; current CRT mode
|
|
rCrtCols dw ? ; number of columns on screen
|
|
rCrtLen dw ? ; length of regen in bytes
|
|
rCrtStart dw ? ; starting address in regen buffer
|
|
rCurPos dw 8 dup (?) ; cursor for each of up to 8 pages
|
|
rCurType dw ? ; current cursor mode setting
|
|
rCurPage db ? ; current page being displayed
|
|
rAddr6845 dw ? ; base address for active display card
|
|
rCrtModeSet db ? ; current setting of the 3x8 register
|
|
rCrtPallette db ? ; current pallette setting color card
|
|
ORG 46ch
|
|
rTimerLow dw ? ; low word of timer count
|
|
rTimerHigh dw ? ; high word of timer count
|
|
rTimerOverflow db ? ; timer has rolled over since last read
|
|
ORG 484h
|
|
rRows db ? ; rows on the active screen (less 1)
|
|
rPoints dw ? ; bytes per character
|
|
rInfo db ? ; mode options
|
|
rInfo3 db ? ; feature bit switches
|
|
rMiscFlags db ? ; miscellaneous flags
|
|
rDCC db ? ; display config comb code table index
|
|
ORG 4a8h
|
|
rSavePtr dd ? ; pointer to E/VGA parms control block
|
|
DATA ENDS
|
|
|
|
KbSeg SEGMENT AT 40h
|
|
ORG 17h
|
|
rKbFlag db ?
|
|
rKbFlag1 db ?
|
|
rAltInput db ? ; storage for alternate keypad entry
|
|
rBufferHead dw ? ; pointer to head of keyboard buffer
|
|
rBufferTail dw ? ; pointer to tail of keyboard buffer
|
|
rKbBuffer dw 16 dup (?)
|
|
ORG 80h ; buffer location within segment 40H
|
|
rBufferStart dw ? ; offset of keyboard buffer start
|
|
rBufferEnd dw ? ; offset of keyboard buffer end
|
|
ORG 96h
|
|
rKbFlag3 db ? ; keyboard mode state and type flags
|
|
rKbFlag2 db ? ; keyboard LED flags
|
|
KbSeg ENDS
|
|
|
|
|
|
;------------------------------------------------------------------------
|
|
@PUSH MACRO a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12
|
|
IRP REGISTER,<a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12>
|
|
IFB <REGISTER>
|
|
;;if REGISTER is blank do nothing.
|
|
ELSE
|
|
PUSH REGISTER
|
|
ENDIF
|
|
ENDM
|
|
ENDM
|
|
@POP MACRO a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12
|
|
IRP REGISTER,<a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12>
|
|
IFB <REGISTER>
|
|
;;if REGISTER is blank do nothing.
|
|
ELSE
|
|
POP REGISTER
|
|
ENDIF
|
|
ENDM
|
|
ENDM
|
|
|
|
BOP MACRO func
|
|
|
|
db 0c4h,0c4h,func
|
|
; jmp cs:[pass_disp_add]
|
|
; int 44h
|
|
ENDM
|
|
|
|
|
|
;------------------------------------------------------------------------
|
|
Config STRUC ; total 50 byte
|
|
sConfigId db 'HECON.CFG' ; 9 byte
|
|
sCodeType db ?
|
|
sFont db 32 dup(?) ; drive/path/filename
|
|
sMemory db ? ; real/EMS/ext./HIMEM
|
|
sHeKey db ?
|
|
sHjKey db ?
|
|
sPrinterType db ?
|
|
sKbdType db ?
|
|
db 3 dup(?) ; reserved
|
|
Config ENDS
|
|
|
|
UserCard STRUC
|
|
uHanOn dw ?
|
|
uHanOff dw ?
|
|
uGetFont dw ?
|
|
uPutFont dw ?
|
|
uModeset dw ?
|
|
uEop dw ?
|
|
uInit dw ?
|
|
UserCard ENDS
|
|
|
|
CrtParm STRUC ; video parms structure
|
|
db 2 dup(?)
|
|
cPoints db ?
|
|
db 6 dup(?)
|
|
cMisc db ?
|
|
cCrtc db 25 dup(?)
|
|
cAttr db 20 dup(?)
|
|
cGrp db 6 dup(?)
|
|
cMap db ?
|
|
db 2 dup(?)
|
|
CrtParm ENDS
|
|
|
|
ModeParms STRUC
|
|
sMode db ? ; input mode(modified if eng-card/text)
|
|
sModeId db ? ; mode ID for application
|
|
sRealMode db ? ; used for mode set really
|
|
sCodeVram db ? ; code buffer address
|
|
sGrpVram db ? ; grp video byte address
|
|
sCodeSize db ? ; code buffer size
|
|
sGrpSize db ? ; grp video byte size
|
|
sStatus db ? ; mode status byte
|
|
sRows db ? ; rows
|
|
sAdjParms dw ? ; adjust video mode parms pointer
|
|
sParms dw ? ; video mode parms pointer
|
|
sCurType dw ? ; cursor type
|
|
ModeParms ENDS
|
|
|
|
UdcHeader STRUC
|
|
UdcMapTblPtr dw ?
|
|
UdcMapTblSize dw ?
|
|
UdcIndexTblPtr dw ?
|
|
UdcIndexTblSize dw ?
|
|
UdcSetTblPtr dw ?
|
|
UdcSetTblSize dw ?
|
|
UdcPatPtr dw ?
|
|
UdcPatSize dw ?
|
|
UdcFileId db 8 dup (?)
|
|
UdcUpdateDate db 8 dup (?)
|
|
UdcReserved db 16 dup (?)
|
|
UdcHeader ENDS
|
|
|
|
GdtTbl STRUC
|
|
db 16 dup(?)
|
|
GdtCntS dw ?
|
|
GdtSL dw ?
|
|
GdtSH db ?
|
|
db ?
|
|
db 2 dup(?)
|
|
GdtCntD dw ?
|
|
GdtDL dw ?
|
|
GdtDH db ?
|
|
db ?
|
|
db 18 dup(?)
|
|
GdtTbl ENDS
|
|
|
|
VDM_INFO_TBL STRUC
|
|
packet_len dw 30
|
|
video_buffer dd 0
|
|
dmode_add dd 0
|
|
windowed_add dd 0
|
|
nt_cons_add dd 0
|
|
disp_sys_init dd 0
|
|
fullsc_resume_ptr dd 0
|
|
ias_setmode_add dd 0
|
|
VDM_INFO_TBL ENDS
|
|
|
|
;------------------------------------------------------------------------
|
|
GrpIndex = 3ceh
|
|
MiscReg = 3c2h
|
|
AttrReg = 3c0h
|
|
SeqIndex = 3c4h
|
|
|
|
|
|
;------------------------------------------------------------------------
|
|
; stack pointer
|
|
rBX = 2*7
|
|
rCX = 2*6
|
|
rDX = 2*5
|
|
rSI = 2*4
|
|
rDI = 2*3
|
|
rES = 2*2
|
|
rDS = 2*1
|
|
rBP = 2*0
|
|
|
|
StringLng = 32 ; size of 'HECON.CFG' file
|
|
EnvrParmPtr = 2ch
|
|
|
|
; << ModeStat >>
|
|
TextEmulation = 10000000b ; fixed
|
|
ColorMode = 01000000b ; fixed
|
|
GrpMode = 00100000b ; fixed
|
|
MultiPage = 00001000b ; fixed
|
|
EmuCursor = 00000100b ; fixed
|
|
HwScroll = 00000001b ; fixed
|
|
|
|
; << CodeStat >>
|
|
InstPatGen = 10000000b ; installed PatGen
|
|
HangeulMode = 01000000b ; ÇÑ±Û Áö¿ø ȯ°æ
|
|
ChabLoad = 00100000b ; request to chohab service
|
|
WSung7 = 00000100b ; fixed
|
|
Chab = 00000010b ; fixed
|
|
WSung = 00000000b ; fixed
|
|
HangeulVideoMode= 00000001b ; ÇÑ±Û display mode
|
|
|
|
; << DisplayStat >>
|
|
RunEsc = 00000001b
|
|
|
|
; << HanStat >> ; reserved flag
|
|
Han1st = 00000001b ; fixed
|
|
|
|
; << KbStat >>
|
|
UserDefineKey = 10000000b
|
|
ReqEnvrChg = 01000000b ; request hot-key processing
|
|
HanKeyinMode = 00100000b ; hangeul displayable video mode
|
|
Ext10xKey = 00010000b ; fixed
|
|
HEStat = 00000100b ; fixed
|
|
JJStat = 00000001b ; fixed
|
|
|
|
; <<HotStat>>
|
|
AltHotChg = 00000001b
|
|
|
|
; << HjStat >> << OrgHjStat >>
|
|
UdcLoaded = 10000000b
|
|
UdcArea = 01000000b
|
|
HjLoaded = 00100000b
|
|
HjModeEnable = 00000001b ; fixed
|
|
|
|
; << HjMenuStat >> ; reserved flag
|
|
HjMenuMode = 00000001b ; fixed
|
|
|
|
; << MachineType >>
|
|
AtMachine = 00000001b
|
|
|
|
; << Card1st >> , << Card2nd >>
|
|
FontCard = 10000000b
|
|
HanCard = 01000000b
|
|
ColorMnt = 00100000b ; color monitor(1), mono monitor(0)
|
|
DualMnt = 00010000b
|
|
CardType = 00001110b ; fixed, card mask
|
|
VgaCard = 00001010b ; fixed
|
|
McgaCard = 00001000b ; fixed
|
|
EgaCardC = 00000110b ; fixed
|
|
EgaCardM = 00000100b ; fixed
|
|
CgaCard = 00000010b ; fixed
|
|
MgaCard = 00000000b ; fixed
|
|
|
|
; << MemStat >>
|
|
RealMem = 10000000b
|
|
ExtMem = 01000000b
|
|
EmsMem = 00100000b
|
|
HiMem = 00010000b
|
|
|
|
; << ErrStat >>
|
|
UdcLoadErr = 10000000b
|
|
FontLoadErr = 01000000b
|
|
MemoryErr = 00100000b
|
|
FileErr = 00010000b
|
|
|
|
; << Printer >>
|
|
NoPrt = 00000011b ; WanSung printer
|
|
KsPrt = 00000000b ; WanSung printer
|
|
wLbp = 00000001b ; WanSung printer
|
|
wKmPrt = 00000010b ; WanSung printer
|
|
cKmPrt = 00000110b ; ChoHab printer
|
|
TgPrt = 00000111b ; ChoHab printer
|
|
ChPrinter = 00000100b
|
|
|
|
; << KbMisc >>
|
|
InterimCtrlDisp = 00000001b
|
|
HaveInterim = 00000010b
|
|
SavedInterim = 00000100b
|
|
RunningHot = 00001000b
|
|
|
|
; << KseCard >>
|
|
MonoMntC = 00000010b
|
|
PassHanCdCheck = 00000100b
|
|
Page1Fix = 00001000b
|
|
|
|
; << KbdType >>
|
|
SetKbd101 = 00000001b
|
|
|
|
;------------------------------------------------------------------------
|
|
EscKey = 1bh
|
|
CR = 0Dh
|
|
LF = 0Ah
|
|
BS = 08h
|
|
BELL = 07h
|
|
DelKey = 53h
|
|
|
|
DefXtKsHeKey = 0f0h
|
|
DefAtKsHeKey = 0f2h
|
|
DefKsHjKey = 0f1h
|
|
Def101HeKey = 38h
|
|
Def101HjKey = 1dh
|
|
DefAtHeKey = 6eh
|
|
DefAtHjKey = 62h
|
|
DefXtHeKey = 57h
|
|
DefXtHjKey = 56h
|
|
|
|
;------------------------------------------------------------------------
|
|
.list
|
|
|