c162-br@zooey.Berkeley.EDU (Warner Young) (05/10/88)
This is essentially the file I received on disk from Atari. This one only describes how to use the call to the Blitter, it does not give information about the internal format of the chip. If I have time, I will post the document for that (although it's much longer). BTW, this has been formatted for printout on 66 line printers already. Read and enjoy! ------ cut here ------ ------ cut here ------ ------ cut here ------ 0x40 Blitmode - Get/Set Blitter Configuration Synopsis: WORD Blitmode(flag); WORD flag; Extended BIOS (trap #14) function number 0x40 (64 decimal) gets and sets the blitter configuration. If 'flag' is -1 (0xffff), then no set operation is performed, and the current blitter configuration is returned. If 'flag' is not -1, then the blitter configuration is set as follows: bit 0: 0: set blit mode to software. 1: set blit mode to hardware. bits 1-14: undefined, reserved. bit 15: must be zero. The blitter configuration before the set is returned in the low word of D0. The fields are: bit 0: 0: blits are being done in software. 1: blits are being done in hardware. bit 1: 0: no chip is available. 1: a blit chip is installed. bits 2-14: undefined, reserved. bit 15: always retrned as zero. If an attempt is made to set the blit mode to 'hard' on a system that does not contain a blit chip, the mode is forced to software. The reserved fields are for future blitter capabilities and other graphics chips. They should be treated as "don't care" fields and should be maintained (intact) because they will acquire meaning in the future. This call works on all ROM versions of the operating system. XBIOS Blitter Call - page 1 Example - from C ------- ---- - #define Blitmode(a) xbios(64,a); curmode = Blitmode(-1); /* save state */ Blitmode(curmode | 1); /* turn on blit */ do_stuff(); /* do processing */ Blitmode(curmode); /* restore state */ Example - from assembly ------- ---- -------- move.w #-1,-(sp) ; do Blitmode(-1) move.w #$40,-(sp) trap #14 addq #4,sp move.w d0,-(sp) ; save state or.w #1,d0 ; make sure it is on move.w d0,-(sp) ; do Blitmode(d0) move.w #$40,-(sp) trap# 14 addq #4,sp ; ; do some processing ; (the old state is ; still on the stack) move.w #$40,-(sp) ;restore state trap #14 addq #4,sp XBIOS Blitter Call - page 2