TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: RICHARD BARTLET
from: Mike Bilow
date: 1995-11-23 16:56:58
subject: Video Memory

RICHARD BARTLET wrote in a message to All:

RB> I know in DOS programming, I can do very fast textmode video
RB> reads and writes by accessing the video memory at B800:0000.
RB> Is there any equivelent to this under os/2 textmode?

While it is possible to do direct and quasi-direct access to video memory
in an OS/2 application, you ordinarily do not want to take that approach. 
You should get the documentation on the VioXxxxx() function calls,
available here for FReq (1:323/107) or download (+1 401 944 8498):

PRCP.ZIP      403K 11-16-90  OS/2 Control Program API documentation, including
                             old 16-bit Vio, Kbd, and Mou subsystems;        
                             INF-format                                      

You can get the address of a logical video memory buffer using the
VioGetBuf() function, and you can get the address of a physical video
memory buffer using the VioGetPhysBuf() function.  If you have existing DOS
code that you need to port to OS/2, then using a logical video buffer is
not too bad.  However, any OS/2 program which uses a physical video buffer
is fairly unfriendly, since it must run in full-screen mode and do some
housekeeping.  For new OS/2 programs, you will get better performance by
using the standard VioXxxxx() API calls.

RB> Also, how do interrupts work under OS/2? Under speed pascal/2, i
RB> tried to put in the following code:

RB> ASM
RB>    mov    ah, 1
RB>    mov    ch, 3
RB>    xor    cl, cl
RB>    int    10h
RB> END;

RB> and it stops on the INT 10h line and says "ASM(24): Illegal
RB> instruction (INT)" any ideas on this? all help would be
RB> greatly appreciated.

You need to call operating system services via the standard API.  In this
case, you would use VioGetMode() and VioSetMode().

-- Mike


---
* Origin: N1BEE BBS +1 401 944 8498 V.34/V.FC/V.32bis/HST16.8 (1:323/107)
SEEN-BY: 270/101 620/243 711/401 409 410 413 430 807 808 809 934 955 712/407
SEEN-BY: 712/515 517 628 713/888 800/1 7877/2809
@PATH: 323/107 150 3615/50 396/1 270/101 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™.