Hi,

On Fri, 9 May 2014, nitinjain wrote:

>                *MEMW[$B800:(width_offset-1)*2
>                          +(height_offset-1)*160]:=current_location^.code;*

For the sake of completeness, this piece of code is just writing a
character to the text mode memory of the display hardware directly.

That memory area starts at a fixed address of $B800:0000 in 16bit DOS.
So, the second part after the colon is just a normal X/Y coordinate to
address (offset) calculation where the width values are multiplied by 2,
because the hardware stores a character on 2 bytes (this is also why MEMW
is used). The 160 there is really just the width of the screen (80
characters) multiplied by 2.

Hope this helps a bit. As others suggested, it's possible to rewrite such
code using the video unit to work with modern systems.

Charlie
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to