TITLE "BIOS_V" - BIOS Video-service, obslužné rutinky pro ovládání videa .8086 ; Linkuje se pro i8086 PAGE 67, 130 ; Stránka 67 zn., délka 130 zn./řádek COMMENT @ =========================================================================== Název souboru : BIOS_V.ASM Link OBJ & LIB : BIOS_V.ZIP Datum úprav : 01.09.97 Verze programu : 4.00 (c) Copyright : 1993,94,95,96,97 by NST 32 , Medo Zdeněk junior ===========================================================================@ Knihovna_NST32 SEGMENT PARA PUBLIC 'CODE' USE16 ASSUME CS:Knihovna_NST32 PUBLIC __bv_get_video_page ; EXTRN __bv_get_video_page :PROC :NEAR PUBLIC __bv_set_video_page ; EXTRN __bv_set_video_page :PROC :NEAR PUBLIC __bv_get_video_mode ; EXTRN __bv_get_video_mode :PROC :NEAR PUBLIC __bv_get_cursor_pos ; EXTRN __bv_get_cursor_pos :PROC :NEAR PUBLIC __bv_set_cursor_pos ; EXTRN __bv_set_cursor_pos :PROC :NEAR PUBLIC __bv_set_cursor_size ; EXTRN __bv_set_cursor_size :PROC :NEAR ;--------------------------------------------------------------------------- ; ; Popis funkce : Přečti aktuální stránku videa. ; -------------- ; ; Volání(např.) : call __bv_get_video_page ; Zjisti aktuální stránku Videa ; -------------- ; ; Výstup : BH = Číslo stránky ; -------------- ; ; Mění registry : Flags, BX ; -------------- ; ;--------------------------------------------------------------------------- __bv_get_video_page PROC NEAR push ax call __bv_get_video_mode ; Zjisti aktuální mód Videa pop ax retn ; Návrat NEAR __bv_get_video_page ENDP ;--------------------------------------------------------------------------- ; ; Popis funkce : Nastav novou aktuální stránku videa. ; -------------- ; ; Volání(např.) : mov bh, Číslo stránky ; -------------- call __bv_set_video_page ; Nastav novou stránku Videa ; ; Mění registry : Flags ; -------------- ; ;--------------------------------------------------------------------------- __bv_set_video_page PROC NEAR push ax mov ah, 05h ; Nastav novou stránku mov al, bh ; Page int 10h pop ax retn ; Návrat NEAR __bv_set_video_page ENDP ;--------------------------------------------------------------------------- ; ; Popis funkce : Přečti aktuální mód videa. ; -------------- ; ; Volání(např.) : call __bv_get_video_mode ; Zjisti aktuální mód Videa ; -------------- ; ; Výstup : AL = Aktuální mód ; -------------- AH = Počet znaků na řádek ; BH = Číslo stránky ; ; Mění registry : Flags, AX, BX ; -------------- ; ;--------------------------------------------------------------------------- __bv_get_video_mode PROC NEAR mov ah, 0Fh ; Načti aktuální mód int 10h retn ; Návrat NEAR __bv_get_video_mode ENDP ;--------------------------------------------------------------------------- ; ; Popis funkce : Přečti aktuální nastavení kurzoru. ; -------------- ; ; Volání(např.) : call __bv_get_cursor_pos ; Zjisti aktuální pozici kurzoru ; -------------- ; ; Výstup : CH = Počáteční linka kurzoru ; -------------- CL = Koncová linka kurzoru ; DH = Řádek ; DL = Sloupec ; ; Mění registry : Flags, CX, DX ; -------------- ; ;--------------------------------------------------------------------------- __bv_get_cursor_pos PROC NEAR push ax bx call __bv_get_video_page ; Zjisti aktuální stránku Videa mov ah, 03h ; Přečti polohu kurzoru int 10h pop bx ax retn ; Návrat NEAR __bv_get_cursor_pos ENDP ;--------------------------------------------------------------------------- ; ; Popis funkce : Nastav nové pozice kurzoru. ; -------------- ; ; Volání(např.) : mov dh, Řádek ; Pozice v řádku ; -------------- mov dl, Sloupec ; Pozice v sloupci ; call __bv_set_cursor_pos ; Nastav novou pozici kurzoru ; ; Mění registry : Flags ; -------------- ; ;--------------------------------------------------------------------------- __bv_set_cursor_pos PROC NEAR push ax bx call __bv_get_video_page ; Zjisti aktuální stránku Videa mov ah, 02h ; Nastav polohy kurzoru int 10h pop bx ax retn ; Návrat NEAR __bv_set_cursor_pos ENDP ;--------------------------------------------------------------------------- ; ; Popis funkce : Nastav novou velikost kurzoru. ; -------------- ; ; Volání(např.) : mov ch, Poč. ; Počáteční linka kurzoru ; -------------- mov cl, End. ; Koncová linka kurzoru ; call __bv_set_cursor_size ; Nastav velikost kurzoru ; ; Mění registry : Flags ; -------------- ; ;--------------------------------------------------------------------------- __bv_set_cursor_size PROC NEAR push ax mov ah, 01h ; Nastav velikost kurzoru int 10h pop ax retn ; Návrat NEAR __bv_set_cursor_size ENDP Knihovna_NST32 ENDS END