home *** CD-ROM | disk | FTP | other *** search
- 1. MACRO-INSTRUCTIONS
-
- Some of them are neccesary to make the program work other are included
- for your convenience.
-
- ALL MACROS DESTROY THE EAX REGISTER!
-
-
- 2. INCLUDE VESA.ASH -- VESA BIOS MACROS AND VARIABLES.
-
- DON'T CHANGE THESE VARS, THEY'RE MODIFIED BY MACROS.
- USE THEM TO GET VARIOUS INFORMATION.
-
- VESAWidth:DWORD screen width in pixels
- VESAHeight:DWORD screen height in pixels
- VESAStartX:DWORD virtual screen's upper left corner
- VESAStartY:DWORD virtual screen's upper left corner
- VESABank:WORD current bank
- VESABuffer:BYTE:256 this is filled with usefull information after VESAInit
- ScrBuff:DWORD pointer to screen buffer (rarely used)
-
-
- You may change these variables...
- These vars are preset so you don't have to change them if you like the settings.
-
- ButtonFont:DWORD pointer to font used in 3D buttons
- ButtonFg:BYTE foreground color (text)
- ButtonBg:BYTE backgroung color
- ButtonU1:BYTE upper edge (lighter) color
- ButtonU2:BYTE upper edge (darker) color
- ButtonL1:BYTE lower edge (lighter) color
- ButtonL2:BYTE lower edge (darker) color
- ButtonBd:BYTE border color (useally black)
- WindowFont:DWORD pointer to font used in 3D windows
- WindowFg:BYTE foreground color
- WindowBg:BYTE background color
- WindowU:BYTE upper edge color (this should be lighter than lower edge)
- WindowL:BYTE lower edge color
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; VESAInit -> buffer
- ;; Checks for VESA BIOS and returns SVGA information.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: VESABuffer = info
- ;;
- ;; Note: ALL REGISTERS *DESTROYED*
- ;; YOU MUST USE THIS MACRO BEFORE USING OTHER FUNCTIONS!
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; GetModeInfo (mode) -> AX,buffer
- ;; Returns info on bank switching and virtual screen size.
- ;;
- ;; Expects: mode (word)
- ;;
- ;; Returns: AH = status (0--ok, 1--error)
- ;; AL = VESA BIOS installed (4Fh--yes)
- ;; VESABuffer = info
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; SetMode (mode) -> AX
- ;; Set video mode.
- ;;
- ;; Expects: mode = [1--640x480 | 2--800x600 | 3--1024x768]
- ;;
- ;; Returns: AH = status (0--ok, 1--error)
- ;; AL = VESA BIOS installed (4Fh--yes)
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; GetMode () -> BX,AX
- ;; Returns current mode.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: BX = mode (bit 15 ignored)
- ;; AH = status (0--ok, 1--error)
- ;; AL = VESA BIOS installed (4Fh--yes)
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; SetBank (bank) -> AX (DX may be modified if an error occurs).
- ;; Hooks bank to window A.
- ;;
- ;; Expects: bank (word)
- ;;
- ;; Returns: ZF = status (ZY--ok, ZN--error)
- ;; AH = status (0--ok, 1--error)
- ;; AL = VESA BIOS installed (4Fh--yes)
- ;;
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; SetScanLen (width) -> AX,BX,CX,DX
- ;; Sets virtual screen width.
- ;;
- ;; Expects: width (word) in pixels
- ;;
- ;; Returns: AH = status (0--ok, 1--error)
- ;; AL = VESA BIOS installed (4Fh--yes)
- ;; BX = bytes per line
- ;; CX = virtual screen width in pixels
- ;; DX = maximal number of lines
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; GetScanLen () -> AX,BX,CD,DX
- ;; Returns virtual screen width.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: AH = status (0--ok, 1--error)
- ;; AL = VESA BIOS installed (4Fh--yes)
- ;; BX = bytes per line
- ;; CX = virtual screen width in pixels
- ;; DX = maximal number of lines
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; SetScreenStart (first column,first line) -> AX
- ;; Sets position of the virtual screen's upper-left corner.
- ;;
- ;; Expects: column # displayed first (word) -- 388
- ;; line # displayed first (word) -- 0
- ;;
- ;; Returns: AH = status (0--ok, 1--error)
- ;; AL = VESA BIOS installed (4Fh--yes)
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; SetDACPal (bits per RGB) -> AX
- ;; Sets number of bits per RGB.
- ;;
- ;; Expects: number of bits per RGB (byte)
- ;;
- ;; Returns: AH = status (0--ok, 1--error)
- ;; AL = VESA BIOS installed (4Fh--yes)
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; GetDACPal () -> BX,AX
- ;; Returns number of bits per RGB.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: BH = number of bits per RGB
- ;; AH = status (0--ok, 1--error)
- ;; AL = VESA BIOS installed (4Fh--yes)
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; ButtonCol (Fg,Bg,U1,U2,L1,L2,Bd)
- ;; Sets Button colors.
- ;;
- ;; Expects: Fg,Bg,U1,U2,L1,L2,Bd
- ;;
- ;; Returns: nothing
- ;;
- ;; Note: this macro allows you to change button colors easily,
- ;; you don't have to use 7 mov instructions.
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; WindowCol (Fg,Bg,U,L)
- ;; Sets Window colors.
- ;;
- ;; Expects: Fg,Bg,U,L
- ;;
- ;; Returns: nothing
- ;;
- ;; Note: look above.
- ;;
-
-
-
-
- 3. INCLUDE MOUSEX.ASH -- MOUSE DRIVER EXTENTION MACROS.
-
- DON'T CHANGE THESE TWO, USE THEM TO CHECK CURRENT MOUSE POSITION.
-
- MouseX:DWORD
- MouseY:DWORD
-
-
- Put here pointers to YOUR procedures that scroll the screen when the mouse
- cursor touches one of the screen edges.
-
- MouseUp:DWORD
- MouseDown:DWORD
- MouseLeft:DWORD
- MouseRight:DWORD
-
- See MouseScrollOn and MouseScrollOff below.
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; MouseInit ()
- ;; Resets mouse driver and the extention, passes screen width and heigth,
- ;; Centers mouse cursor and turns if off.
- ;;
- ;; NOTE: ALLWAYS USE THIS MACRO AFTER SWITCHING TO A DIFFERENT MODE.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: BX = button data
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; MouseOn ()
- ;; Turns the mouse cursor on.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: nothing
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; MouseOff ()
- ;; Turns the mouse cursor off.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: nothing
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; MouseB ()
- ;; Gets mouse button status.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: BX = button status
- ;; bit 0--left
- ;; 1--right
- ;; 2--middle
- ;; CX = X-Pos
- ;; DX = Y-Pos
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; MousePos (X,Y)
- ;; Changes the cursor's position.
- ;;
- ;; Expects: X = x-pos (word)
- ;; Y = y-pos (word)
- ;;
- ;; Returns: CF = status [0--ok|1--error]
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; MouseCursor (OFFSET to bitmap)
- ;; Changes the mouse cursor bitmap.
- ;;
- ;; Expects: OFFSET to bitmap
- ;;
- ;; Returns: nothing
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; MouseScrollOn
- ;; Turns scrolling on.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: nothing
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; MouseScrollOff
- ;; Turns scrolling off.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: nothing
- ;;
-
-
-
-
- 4. INCLUDE EDAY.ASH -- EVERY DAY MACROS (you don't have to use them).
-
-
- LF EQU 0Dh,0Ah
- EOM EQU 0Dh,0Ah,'$'
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; Term -- terminates the program.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: nothing
- ;;
- ;; Note: It's a good idea to use this macro in your program since
- ;; it disables the mouse driver extention and resets the screen
- ;; mode to default.
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; Kill (offset) -- terminates the program with an error message.
- ;;
- ;; Expects: offset to ASCII$ string
- ;;
- ;; Returns: nothing
- ;;
- ;; Note: The EOS function Exit_Error couses an error under Windows 95,
- ;; that's why I made my own.
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; GetClock ()
- ;; Returns timer ticks in EAX.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: EAX = timer ticks since last reset.
- ;;
- ;; Note: Fq = 1.19318 MHz
- ;; 18.2 t/s
- ;; 65536 t/h
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; ClockSync ()
- ;; Waits until the clock triggers.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: EAX = timer
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; DosF (func #)
- ;; Calls dos function via int 21h.
- ;;
- ;; Expects: funtcion number (byte)
- ;;
- ;; Returns: *
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; PutChar (char)
- ;; Displays a character with Ctrl-Break check.
- ;;
- ;; Expects: char (byte)
- ;;
- ;; Returns: nothing
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; Print (offset)
- ;; Displays a string.
- ;;
- ;; Expects: offset (ASCII$ string)
- ;;
- ;; Returns: nothing
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; GetKey () -> AH,AL
- ;; Reads a key without echo and Ctrl-Break check.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: AH = scan code
- ;; AL = ASCII char
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; KeyPressed () -> ZF,AH,AL
- ;; Checks if a character is ready.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: ZF = [0--ready, 1--not ready]
- ;; AH = scan code
- ;; AL = ASCII char
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; GetChar () -> AL
- ;; Reads and echos a character with Crtl-Break check.
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: AL = char
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; Beep
- ;;
- ;; Expects: nothing
- ;;
- ;; Returns: nothing
- ;;
-
-
- ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ;; CMOSr (address)
- ;;
- ;; Expects: address
- ;;
- ;; Returns: AL = data
- ;;
-
-
-
-
- 5. EDAY.OBJ -- EVERY DAY FUNCTIONS.
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; Convert -- Converts value in EAX to dec string.
- ;
- ; Expects: EAX = value
- ; EDI = buffer
- ; CF = [0--unsigned,1--signed]
- ;
- ; Returns: ASCIIZ string in buffer.
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; ConvertH -- Converts value in EAX to hex string.
- ;
- ; Expects: EAX = value
- ; EDI = buffer
- ; CF = word [0--DD|1--DW]
- ;
- ; Returns: ASCIIZ string.
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; CheckCPU
- ;
- ; Expects: nothing
- ;
- ; Returns: AH = CPU type
- ;
- ; Notes: AH... 0--8086
- ; 1--186
- ; 2--286
- ; 3--386
- ; 4--486
- ; 5--Pentium
- ; 6--Pentium II
- ;
- ; ALL REGISTERS *DESTROYED*
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; CPUID
- ;
- ; Expects: EDI = buffer (13 bytes)
- ;
- ; Returns: EAX = CPU type [0--not avaible]
- ; EDX = CPU info
- ; [EDI] = ASCIIZ CPU name (allways)
- ;
- ; Notes: ALL REGISTERS *DESTROYED*
- ;
-
-
-
-
- 6. VESA.OBJ -- BASIC FUNCTIONS.
-
- All functions in this library are invoked with CALL instruction
- (except UseButtons).
-
- USEFUL TIPS:
-
- 1. Functions that use x and y coordinates usually expect them in ECX and EDX.
- 2. Block functions expect x and y size in EAX and EBX,
- ESI is the source and EDI the destination.
- 3. In text output functions EBX is the font offset.
- 4. ALLMOST ALL FUNCTIONS RETURN STATUS IN CARRY FLAG (CF).
- If it's set (CF=1) an error has occured, useally due to invalid coordinates.
- For example, if you try to draw a pixel "outside" the screen.
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; PutBlock -- displays a block.
- ;
- ; Expects: ECX = x-position of upper-left corner [0..n]
- ; EDX = y-position of upper-left corner [0..n]
- ; EAX = x-size [1..n]
- ; EBX = y-size [1..n]
- ; ESI = block
- ; CF = raster adjust (1--yes, 0--no sync)
- ; If you want flicker free animation set CF=1.
- ;
- ; Returns: CF = status (CN--ok, CY--error)
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; GetBlock -- gets block from video memory.
- ;
- ; Expects: ECX = x-position of upper-left corner [0..n]
- ; EDX = y-position of upper-left corner [0..n]
- ; EAX = x-size [1..n]
- ; EBX = y-size [1..n]
- ; EDI = offset
- ;
- ; Returns: CF = status (CN--ok, CY--error)
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; FillBlock -- displays a one-color-block.
- ;
- ; Expects: ECX = x-position of upper-left corner [0..n]
- ; EDX = y-position of upper-left corner [0..n]
- ; EAX = x-size [1..n]
- ; EBX = y-size [1..n]
- ; BP = color [0..255]
- ; CF = raster adjust (1--yes, 0--no sync)
- ; If you want flicker free animation set CF=1.
- ;
- ; Returns: CF = status (CN--ok, CY--error)
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; PutPixel -- displays a pixel.
- ;
- ; Expects: AL = color
- ; ECX = x-position [0..n]
- ; EDX = y-position [0..n]
- ;
- ; Returns: CF = status (CN--ok, CY--error)
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; GetPixel -- gets a pixel.
- ;
- ; Expects: ECX = x-position [0..n]
- ; EDX = y-position [0..n]
- ;
- ; Returns: CF = status (CN--ok, CY--error)
- ; AL = color
- ; AH * DESTROYED *
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; PutLine -- displays a line (X1,Y1) -> (X2,Y2) (X1<X2)
- ;
- ; Expects: AL = color
- ; ECX = X1
- ; EDX = Y1
- ; ESI = X2
- ; EDI = Y2
- ;
- ; Returns: CF = status [0--ok|1--error]
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; SetPal -- sets a n-color RGB pal.
- ;
- ; Expects: ECX = number of colors [1..256]
- ; ESI = pal offset (color #0)
- ;
- ; Returns: CF = status (CN--ok, CY--error)
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; SetGrayPal -- sets a gray scale pal.
- ;
- ; Expects: nothing
- ;
- ; Returns: nothing
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; SetNulPal -- sets a nul pal (black).
- ;
- ; Expects: nothing
- ;
- ; Returns: nothing
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; LoadPal -- loads pal from disk.
- ;
- ; Expects: EDX = filespec offset
- ;
- ; Returns: nothing
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; PutGpxText -- displays text.
- ;
- ; Expects: AL = color
- ; ECX = x-position
- ; EDX = y-position
- ; ESI = text offset (0Ah = cr and line feed)
- ; EBX = font offset
- ;
- ; Returns: CF = status (CN--ok, CY--error)
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; PutGpxChar -- displays char.
- ;
- ; Expects: AL = color
- ; AH = char
- ; ECX = x-position
- ; EDX = y-position
- ; EBX = font offset
- ;
- ; Returns: CF = status (CN--ok, CY--error)
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; Input -- reads and echos ASCIIZ string.
- ;
- ; Expects: AL = Fg color
- ; AH = Bg color
- ; ECX = x-position
- ; EDX = y-position
- ; EBX = font offset
- ; EDI = buffer
- ; ESI = string length
- ;
- ; Returns: CF = status (CN--ok, CY--error)
- ; EAX = length
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; WipeScr -- erases the screen using specified color.
- ;
- ; Expects: AL = color
- ; AH = mode [0..1]
- ; 0--normal (fastest)
- ; 1--use horizontal lines
- ;
- ; Returns: CF = status (CN--ok, CY--error)
- ;
-
-
-
-
- 7. VESA2.OBJ -- DISPLAY GIF AND SCI PICTURES.
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; ShowGIF -- displays a 256 color GIF.
- ;
- ; Expects: EBX = filespec (ASCIIZ - zero terminated string)
- ; CF = center [0--no | 1--yes]
- ; ECX = X-position (CY)
- ; EDX = Y-position (CY)
- ;
- ; Returns: CF = status (CN--ok, CY--error)
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; ShowColoRIX -- displays a picture in ColoRIX format.
- ;
- ; Expects: EBX = filespec (ASCIIZ - zero terminated string)
- ; CF = center [0--no | 1--yes]
- ; ECX = X-position (CY)
- ; EDX = Y-position (CY)
- ;
- ; Returns: CF = status (CN--ok, CY--error)
- ;
-
-
-
-
- 8. VESA3.OBJ -- BUFFERED PIXEL AND LINE DRAWING (RARELY USED).
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; InitScrBuff
- ;
- ; Expects: nothing
- ;
- ; Returns: CF = status [0--ok|1--error]
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; KillScrBuff -- deallocates memory used by screen buffer.
- ;
- ; Expects: nothing
- ;
- ; Returns: CF = status [0--ok|1--error]
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; PutScrBuff -- displays screen buffer in 640x480x256 mode.
- ;
- ; Expects: EBX = number of lines to spare at the bottom
- ; of the screen [0-70]
- ; CF = raster adjust [0--no|1--sync]
- ;
- ; Returns: CF = status [0--ok|1--error]
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; GetScrBuff -- copies screen to buffer in 640x480x256 mode.
- ;
- ; Expects: EBX = number of lines to spare at the bottom
- ; of the screen [0-70]
- ;
- ; Returns: CF = status [0--ok|1--error]
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; FastLine -- displays (buffered) a line (X1,Y1) -> (X2,Y2) (X1<X2)
- ;
- ; Expects: AL = color
- ; ECX = X1
- ; EDX = Y1
- ; ESI = X2
- ; EDI = Y2
- ;
- ; Returns: CF = status [0--ok|1--error]
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; FastPixel
- ;
- ; Expects: AL = color
- ; ECX = X
- ; EDX = Y
- ;
- ; Returns: CF = status [0--ok|1--error]
- ;
-
-
-
-
- 9. VESA4.OBJ -- 3D BUTTONS, 3D WINDOWS, DIALOGS.
-
- THE ONLY FUNCTION YOU'LL NEED IS PutDialog, OTHER FUNCTIONS ARE USED BY IT.
- I ADDED THEM SO THAT YOU CAN CREATE CUSTOM DIALOGS.
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; PutButton -- displays a 3D button.
- ;
- ; Expects: AH = mode [0--normal|1--depressed]
- ; EBX = button structure offset
- ;
- ; ButtonFont = font offset (8x16, rows: 0,1,12,13,14,15 ignored)
- ;
- ; Returns: CF = status [0--ok|1--error]
- ;
- ; Note: INTERNAL FUNCTION USED BY PutDialog.
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; ShowButtons -- displays 3D button structure.
- ;
- ; Expects: EBX = struc offset
- ;
- ; ButtonFont = font offset (8x16, rows: 0,1,12,13,14,15 ignored)
- ;
- ; Notes: Button1 DBu <Func,X,Y,TL,"TEXT">
- ; .
- ; .
- ; BuTerm
- ;
- ; TYPE -- LENGTH
- ; 0h 1 (18x20)
- ; 4h 3 (34x20)
- ; 8h 8 (74x20)
- ; special Ch 1 (18x20)
- ;
- ; Returns: CF = status [0--ok|1--error]
- ;
- ; Note: INTERNAL FUNCTION USED BY PutDialog.
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; UseButtons -- JMP|CALL
- ;
- ; Expects: EBX = struc offset
- ; EDX = right button func (0--none)
- ; CY = refresh
- ;
- ; ButtonFont = font offset (8x16, rows: 0,1,12,13,14,15 ignored)
- ;
- ; Returns: nothing
- ;
- ; Note: ALL REGISTERS *DESTROYED*
- ;
- ; Note: INTERNAL FUNCTION USED BY PutDialog.
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; PutWindow -- displays a 3D window.
- ;
- ; Expects: EBX = struc offset
- ;
- ; Notes: Name WinDef <Xpos,YPos,X-Size,Y-Size>
- ; WinTitle "Text"
- ; WinText XPos,Ypos,"Text"
- ; WinTxt XCur,YCur,"Text"
- ; WinH XPos,YPos,X-Size,Y-Size
- ; WinHText XPos,YPos,Length,"Text"
- ; WinL XPos,YPos,X-Size,Y-Size
- ; WinLText XPos,YPos,Length,"Text"
- ; WinEnds
- ;
- ; Returns: CF = status [0--ok|1--error]
- ;
- ; Note: INTERNAL FUNCTION USED BY PutDialog.
- ;
-
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; PutDialog -- displays a 3D window and button structure.
- ;
- ; Expects: EBX = struc offset
- ;
- ; WindowFont = font offset
- ; ButtonFont = font offset (8x16, rows: 0,1,12,13,14,15 ignored)
- ;
- ; Notes: Name Dialog <WindowStruc,ButtonStruc,[RightMouseClick,Proc]>
- ; WindowStruc -- pointer
- ; ButtonStruc -- pointer
- ; RightMouseClick (optional) -- pointer to your procedure
- ; Proc (optional) -- pointer to your procedure invoked before
- ; the buttons are "turned on", so you can display
- ; all other stuff that PutDialog doesn't have.
- ;
- ; Retc -- return from proc and continue current dialog
- ; Retx -- return from proc and exit current dialog
- ;
- ; Returns: CF = status [0--ok|1--error]
- ;
- ; Note: ALL REGISTERS *DESTROYED*
- ;
-