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