Microsoft KB Archive/33813

= Copying Macintosh BASIC Screen to Hercules Screen on IBM PC =

Article ID: 33813

Article Last Modified on 11/21/2006

-

APPLIES TO


 * Microsoft QuickBasic 1.0
 * Microsoft BASIC Compiler 6.0b
 * Microsoft BASIC Interpreter 2.0
 * Microsoft BASIC Interpreter 2.1 for Macintosh
 * Microsoft BASIC Interpreter 3.0 for Macintosh

-



This article was previously published under Q33813



SUMMARY
The following information provides an example of copying the screen memory from an Macintosh Plus computer (through a serial communications line) to an IBM PC with a Hercules Graphics Adapter installed.

On the Macintosh side, this information applies to Microsoft QuickBASIC Version 1.00, Microsoft BASIC Compiler Version 1.00, and Microsoft BASIC Interpreter Versions 2.00, 2.10, and 3.00 for the Apple Macintosh.

On the IBM PC side, this information applies to Microsoft QuickBASIC Compiler Versions 4.00, 4.00b, and 4.50 for MS-DOS, Microsoft BASIC Compiler Versions 6.00 and 6.00b for MS-DOS, and Microsoft BASIC Professional Development System (PDS) Version 7.00 for MS-DOS.



MORE INFORMATION
The following information is valid only for a Macintosh Plus, and may not work on other Apple Macintosh computers. The addresses supplied are based upon customer experimentation and Microsoft does not provide support for the following code. You may modify the program as you wish.

Although both a Macintosh and a Hercules-compatible video display card use the same approach to storing an image (one pixel per bit starting with the upper-left corner of screen), there is a fundamental difference in layout of this memory.

Macintosh screen memory is contiguous, whereas Hercules memory consists of four interlaced blocks of memory. The Macintosh uses 64 decimal bytes per line; a Hercules-compatible monochrome adapter uses 90 decimal bytes (5A Hex) per line.

The following are the starting addresses for the first eight screen lines on the Macintosh Plus and on the Hercules Graphics Adapter:   Line        Mac Plus     Hercules

0          FA700        B000:0000 1          FA740        B000:2000 2          FA780        B000:4000 3          FA7C0        B000:6000 4          FA800        B000:005A 5          FA840        B000:205A 6          FA880        B000:405A 7          FA8C0        B000:605A The following programs copy screen memory from an Apple Macintosh to a Hercules-equipped IBM PC through a null-modem serial port connection: 'This program runs on the Macintosh in compiled or interpreted BASIC: CLS OPEN &quot;COM1:9600,n,8&quot; FOR OUTPUT AS #1 FOR row=0 to 341 PRINT #1, row FOR col=0 to 63 PRINT #1, PEEK(64*row+col+1025792) NEXT col NEXT row

'This program, run in Microsoft QuickBASIC on the IBM PC, 'is started first: DEFINT A-Z OPEN &quot;com1:9600,n,8,,cs0,ds0,cd0,bin,rb4048&quot; FOR INPUT AS #1 ON COM(1) GOSUB ReadALine COM(1) ON  SCREEN 3 CLS DEF SEG = &HB000 WHILE INKEY$ = &quot;&quot;: WEND END ReadALine: INPUT #1, MacRow PCRow = &H2000 * (MacRow MOD 4) + &H5A * (MacRow \ 4) FOR Column = 0 TO 63 INPUT #1, RowPixelCode POKE PCRow + Column, RowPixelCode NEXT Column RETURN

Additional query words: QuickBas BasicCom MQuickB

Keywords: KB33813

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.