TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Tonny Bjoern
from: Rob Basler
date: 1995-06-11 11:40:02
subject: Video_switch_Notifica 2/

>>> Continued from previous message
        cmp     al,10h
        jb      {at}{at}NoSub
        sub     al,10h
{at}{at}NoSub:
        ; now we have font number from 0-4.
        or      al,al
        jz      {at}{at}Custom
        mov     cs:Font,al
        jmp     {at}{at}Done
{at}{at}Custom:
        ; is a custom font, do the best we can to match the size.
        mov     cs:Font,2
        cmp     bh,8
        jbe     {at}{at}Done
        mov     cs:Font,1
        cmp     bh,14
        jbe     {at}{at}Done
        mov     cs:Font,4
{at}{at}Done:
        pop     ax

        popf

        ; call original int 10 handler
        pushf
        cli
        call    cs:CSInt10

        ; save ROWS in case it changes without BIOS help.
        push    es
        push    bx
        mov     bx,40h
        mov     es,bx
        mov     bx,84h
        mov     bl,byte ptr es:[bx]
        mov     cs:ROWS,bl
        pop     bx
        pop     es

        iret
Int10   endp

residentsize label byte

Init    proc    near
        push    ax
        push    bx
        push    es
        push    ds
        push    dx

        push    cs        ; make our ds addressable
        pop     ds

        ; output the titles
        mov     ah,9h
        mov     dx,offset BiosTitles
        int     21h

        ; get original interrupt handler
        mov     ax,352Fh
        int     21h
        mov     word ptr [csint2F],bx
        mov     word ptr [csint2F+2],es

        ; yes, install Int2F handler to work it.
        mov     ax,252Fh
        mov     dx,offset Int2F
        int     21h

        ; get original interrupt handler
        mov     ax,3510h
        int     21h
        mov     word ptr [csint10],bx
        mov     word ptr [csint10+2],es

        ; yes, install Int10 handler to work it.
        mov     ax,2510h
        mov     dx,offset Int10
        int     21h

        ; initialize ROWS to our current mode.
        mov     bx,40h
        mov     es,bx
        mov     bx,84h
        mov     al,byte ptr es:[bx]
        mov     ROWS,al

        pop     dx
        pop     ds
        pop     es
        pop     bx
        pop     ax

        ; DEALLOCATE THE PROGRAM'S ENVIRONMENT BLOCK

        MOV     AX,DS:[2CH]             ; GET ENVT SEGMENT
        MOV     ES,AX
        MOV     AH,49H                  ; FREE IT
        INT     21H

        mov     dx,offset residentsize
        add     dx,15
        mov     cx,4
        shr     dx,cl            ; terminate and stay resident
        mov     ax,3100h
        int     21h
Init    endp

BiosTitles db 13,10,"TRIDFONT - Fix for corrupted VGA text fonts in OS/2 DOS bo
           db "Version 1.00 (C)1992 Robware Software Development.  All rights r
           db "Developed in Canada by Robert Basler.",13,10,13,10
           db "NOTE: VIDEO_SWITCH_NOTIFICATION under DOS Settings must be ON fo

_text ends

end start
___
 X SLMR 2.1a X recursive (ree 'cuhr siv) adj. - see recursive.

--- Maximus/2 2.01wb
* Origin: The Idle Task... (604)275-0835 Richmond BC. (1:153/905)
SEEN-BY: 105/42 620/243 711/401 409 410 413 430 807 808 809 934 955 712/407
SEEN-BY: 712/515 628 704 713/888 800/1 7877/2809
@PATH: 153/905 828 800 270/101 105/103 42 712/515 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.