
  NAME DqLrgLib_112

DqLarge_CGROUP GROUP DqLarge_CODE

PUBLIC OsWhereAmI
PUBLIC DqAllocate
PUBLIC DqFree
PUBLIC DqGetArgument
PUBLIC DqGetExceptionHandler
$EJECT

DQLarge_CODE SEGMENT PARA PUBLIC 'CODE'
  ASSUME CS:DqLarge_CGROUP

OsWhereAmI LABEL FAR
  MOV  AL, 9
  JMP  Continue
DqAllocate LABEL FAR
  MOV  AL, 113
  JMP  Continue
DqFree LABEL FAR
  MOV  AL, 114
  JMP  Continue
DqGetExceptionHandler LABEL FAR
  MOV  AL, 118
  JMP  Continue
DqGetArgument LABEL FAR
  MOV  AL, 137
; this does not need a jump
$EJECT

Continue LABEL NEAR
  XOR  AH, AH
  PUSH AX          ; push index

  XOR  AX, AX      ; int vects
  MOV  ES, AX      ; in seg 0

  MOV  AX, 4 * 112
  MOV  BX, AX      ; @ int vect

  LES  BX, DWORD PTR ES:[BX]

  INC  BX          ; get addr of
  INC  BX          ; indirect

  POP  AX          ; pop index

  PUSH ES          ; push CS
  PUSH BX          ; push IP

LongRet PROC FAR
  RET
LongRet ENDP

DqLarge_CODE ENDS

  END
