[comp.sys.ibm.pc.programmer] Where is the screen memory in a CGA 8088?

bhan@ohs.UUCP (Bruce Hansen) (03/09/90)

The subject pretty much tells it all.  I want to be able to poke()
a character right into the screen memory so it will show up on the
screen as soon as it is poked.  I read in an Al Stevens book that this
memory starts at b800 for an 8086, but, as that location
does not work for me, I assume it is different for the 8088.

Answers, anyone?

Bruce Hansen

spolsky-joel@CS.YALE.EDU (Joel Spolsky) (03/11/90)

In article <517@ohs.UUCP> bhan@ohs.UUCP (Bruce Hansen) writes:
>The subject pretty much tells it all.  I want to be able to poke()
>a character right into the screen memory so it will show up on the
>screen as soon as it is poked.  I read in an Al Stevens book that this
>memory starts at b800 for an 8086, but, as that location
>does not work for me, I assume it is different for the 8088.


For all modes except mode 7 (MDA):  B800:0000
For mode 7:			    B000:0000

CPU doesn't matter.

+----------------+----------------------------------------------------------+
|  Joel Spolsky  | bitnet: spolsky@yalecs.bitnet     uucp: ...!yale!spolsky |
|                | internet: spolsky@cs.yale.edu     voicenet: 203-436-1538 |
+----------------+----------------------------------------------------------+
                                                      #include <disclaimer.h>

frisk@rhi.hi.is (Fridrik Skulason) (03/12/90)

In article <18675@cs.yale.edu> spolsky-joel@CS.YALE.EDU (Joel Spolsky) writes:
>For all modes except mode 7 (MDA):  B800:0000
>For mode 7:			    B000:0000
>
Minor correction: Some EGA and VGA cards provide 132x25, 132x43 or 132x50
B/W modes where the screen memory also starts at B000:0000

-- 
Fridrik Skulason   University of Iceland     |     
Technical Editor Virus Bulletin (UK).        |
E-Mail: frisk@rhi.hi.is   Fax: 354-1-28801   |   

cs4g6ag@maccs.dcss.mcmaster.ca (Stephen M. Dunn) (03/12/90)

In article <517@ohs.UUCP> bhan@ohs.UUCP (Bruce Hansen) writes:
$The subject pretty much tells it all.  I want to be able to poke()
$a character right into the screen memory so it will show up on the
$screen as soon as it is poked.  I read in an Al Stevens book that this
$memory starts at b800 for an 8086, but, as that location
$does not work for me, I assume it is different for the 8088.

   Regardless of processor type, CGA memory starts at b800.  Note that
there are multiple display pages at 4K intervals, although it is
exceptionally rare that a program will exit with a different display
page selected than the first one.
-- 
Stephen M. Dunn                               cs4g6ag@maccs.dcss.mcmaster.ca
          <std_disclaimer.h> = "\nI'm only an undergraduate!!!\n";
****************************************************************************
    "So sorry, I never meant to break your heart ... but you broke mine."

torkil@psivax.UUCP (Torkil Hammer) (03/20/90)

In article <25FA99BD.29545@maccs.dcss.mcmaster.ca> cs4g6ag@maccs.dcss.mcmaster.ca (Stephen M. Dunn) writes:
#In article <517@ohs.UUCP> bhan@ohs.UUCP (Bruce Hansen) writes:
#$The subject pretty much tells it all.  I want to be able to poke()
#$a character right into the screen memory so it will show up on the
#$screen as soon as it is poked.  I read in an Al Stevens book that this
#$memory starts at b800 for an 8086, but, as that location
#$does not work for me, I assume it is different for the 8088.
#
#   Regardless of processor type, CGA memory starts at b800.  Note that

Watch out.  I think it is b8000 or something like that, not b800.

cs4g6ag@maccs.dcss.mcmaster.ca (Stephen M. Dunn) (03/27/90)

In article <3341@psivax.UUCP> torkil@psivax.UUCP (Torkil Hammer) writes:
$In article <25FA99BD.29545@maccs.dcss.mcmaster.ca> cs4g6ag@maccs.dcss.mcmaster.ca (Stephen M. Dunn) writes:
$#   Regardless of processor type, CGA memory starts at b800.  Note that
$Watch out.  I think it is b8000 or something like that, not b800.

   In absolute terms, yes.  But remember that memory on the 8086/8088 is
segmented, and no part of an address can be more than 16 bits.  CGA memory
starts at segment B800, offset 0000 (or other equivalent representation,
such as segment B000, offset 8000).
-- 
               More half-baked ideas from the oven of:
****************************************************************************
Stephen M. Dunn                               cs4g6ag@maccs.dcss.mcmaster.ca
     <std_disclaimer.h> = "\nI'm only an undergraduate ... for now!\n";