Category : C Source Code
Archive   : XLIB06.ZIP
Filename : XLIB.INC

 
Output of file : XLIB.INC contained in archive : XLIB06.ZIP
;-----------------------------------------------------------------------
;
; XLIB - Include file
;
; Global equates and variables
;
;
; ****** XLIB - Mode X graphics library ****************
; ****** ****************
; ****** Written By Themie Gouthas ****************
;
; [email protected]
; [email protected]
;
; MODIFICATIONS:
; 26-9-92 : Pel panning code added
; 23-10-92: Added clip rectangle code
;-----------------------------------------------------------------------

;

LOCALS
.286

; First lets find out what memory model to use

include model.inc


AC_INDEX equ 03c0h ;Attribute controller index register
MISC_OUTPUT equ 03c2h ;Miscellaneous Output register
SC_INDEX equ 03c4h ;Sequence Controller Index
GC_INDEX equ 03ceh ; Graphics controller Index
CRTC_INDEX equ 03d4h ;CRT Controller Index
DAC_READ_INDEX equ 03c7h ;
DAC_WRITE_INDEX equ 03c8h ;
DAC_DATA equ 03c9h ;
INPUT_STATUS_0 equ 03dah ;Input status 0 register


SCREEN_SEG equ 0a000h ;segment of display memory in mode X

MAP_MASK equ 02h ;index in SC of Map Mask register
READ_MAP equ 04h ;index in GC of the Read Map register
BIT_MASK equ 08h ;index in GC of Bit Mask register

OVERFLOW equ 07h ; CRTC overflow register index
MAX_SCAN_LINE equ 09h ; CRTC maximum scan line register index
ADDR_HIGH equ 0ch ;Index of Start Address High reg in CRTC
ADDR_LOW equ 0dh ; Low
CRTC_OFFSET equ 13h ; CRTC offset register index
UNDERLINE equ 14h ; CRTC underline location register index
MODE_CONTROL equ 17h ; CRTC mode control register index
LINE_COMPARE equ 18h ; CRTC line compare reg. index (bits 0-7 of
; split screen scan line

AC_MODE_CONTROL equ 10h ; Index of Mode COntrol register in AC
PEL_PANNING equ 13h ; Pel panning register index in AC

PATTERN_BUFFER equ 0fffch ;offset in screen memory of pattern buffer

TRUE equ 1
FALSE equ 0


OK equ 0
ERROR equ 1


;-----------------------------------------------------------------------
; Macro to wait for the vertical retrace leading edge

WaitVsyncStart macro
LOCAL WaitNotVsync,WaitVsync
mov dx,INPUT_STATUS_0
WaitNotVsync:
in al,dx
test al,08h
jnz WaitNotVsync
WaitVsync:
in al,dx
test al,08h
jz WaitVsync
endm

;-----------------------------------------------------------------------
; Macro to wait for the vertical retrace trailing edge

WaitVsyncEnd macro
LOCAL WaitNotVsync,WaitVsync
mov dx,INPUT_STATUS_0
WaitVsync2:
in al,dx
test al,08h
jz WaitVsync2
WaitNotVsync2:
in al,dx
test al,08h
jnz WaitNotVsync2
endm

;--- Word out macro ------------------------------------------

WORDOUT macro
IFDEF nw
out dx,al
inc dx
xchg al,ah
out dx,al
xchg al,ah
dec dx
ELSE
out dx,al
ENDIF
endm

;------------------------------------------------------------------------
; Global variables - XMAIN exports
;
global _InGraphics :byte
global _CurrXMode :word
global _ScrnPhysicalByteWidth :word
global _ScrnPhysicalPixelWidth :word
global _ScrnPhysicalHeight :word
global _ErrorValue :byte

global _SplitScrnOffs :word
global _SplitScrnScanLine :word
global _SplitScrnVisibleHeight :word
global _Page0_Offs :word
global _Page1_Offs :word
global _Page2_Offs :word
global _ScrnLogicalByteWidth :word
global _ScrnLogicalPixelWidth :word
global _ScrnLogicalHeight :word

global _MaxScrollX :word
global _MaxScrollY :word
global _DoubleBufferActive :word
global _TrippleBufferActive :word
global _VisiblePageIdx :word
global _VisiblePageOffs :word
global _HiddenPageOffs :word
global _WaitingPageOffs :word
global _NonVisual_Offs :word
global _TopClip :word
global _BottomClip :word
global _LeftClip :word
global _RightClip :word

global _PhysicalStartByteX :word
global _PhysicalStartPixelX :word
global _PhysicalStartY :word

global _VsyncHandlerActive :word
global _MouseRefreshFlag :word
global _MouseVsyncHandler :dword
global _StartAddressFlag :word
global _WaitingStartLow :word
global _WaitingStartHigh :word
global _WaitingPelPan :word
global _VsyncPaletteStart :word
global _VsyncPaletteCount :word
global _VsyncPaletteBuffer :byte




  3 Responses to “Category : C Source Code
Archive   : XLIB06.ZIP
Filename : XLIB.INC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/