>>> only the top left of the screen on an Aurora is used. You should
>>> only save the actual number of bytes used for the screen
resolution
>>> used, i.e. for mode 0 and mode 8, this is pixel_width DIV 4.
>
>Is this mode 0 the same as mode 4 then, or has Aurora got mode 0, 4
and 8
Mode 0 is in fact Mode 4. QDOS seems to return 0 for 4 colour mode.
FOr some reason in the past I thought it was 4, but n checking it
turns out to be 0. Many programs will accept either 4 or 0 for 4
colour mode. Some will only accept 0. I think PIC files use a value of
0 for 4 colour screen mode.

>So I need something like the following :
>
>MyMode = DISPLAY_MODE
>if (MyMode = 0 or MyMode = 8) AND RunningOnAurora THEN
>    do a loop to save DISPLAY_WIDTH(#0) DIV 4 bytes from the screen
address
>for as many lines as SCR_YLIM
>else
>    if (MyMode = 4) THEN
> do something else
>    endif
>endif
>
>Thanks for the info on pic formats, I have got it somewhere at home,
just
>not here at work.

Umm, I'm not too sure if you need to do this. What you could do is
something like this, using DJToolkit extensions:

MyMode = DISPLAY_MODE
IF MyMode = 0 OR MyMode = 8 THEN
  IF DISPLAY_WIDTH(#channel) = (pixel_width DIV 4) OR pic_file = 1
THEN
    SBYTES
filename$,SCREEN_BASE(#channel),DISPLAY_WIDTH(#channel)*pixel_height
  ELSE
    OPEN_NEW #op_channel,filename$
    IF pic_file = 1 THEN output 10 byte preamble for pic files
    address = SCREEN_BASE(#channel)
    FOR line_no = 0 TO pixel_height
      PRINT #op_channel,PEEK_STRING(address,(pixel_width DIV 4));
      address = address+(DISPLAY_WIDTH(#channel))
    END FOR line_no
  END IF
ELSE
  REMark different routines for high colour modes (which I can't
remember)
END IF

Not tested at all, written from memory.

--
Dilwyn Jones
[EMAIL PROTECTED]
http://www.soft.net.uk/dj/index.html

Reply via email to