summaryrefslogtreecommitdiff
path: root/Source/GetViewModes.S
diff options
context:
space:
mode:
authorChristian A. Weber <chris@gna.ch>1993-05-24 15:45:28 +0000
committerChristian A. Weber <chris@gna.ch>1993-05-24 15:45:28 +0000
commit2a2dc20a9632bc5d62934d1f9990ed24389f5a52 (patch)
tree68c5592753d42e4cde3cc2af9b0c7f017d31fc6c /Source/GetViewModes.S
parent193961d7392779b8a27060d918979a41ff1d18eb (diff)
downloadiff-library-2a2dc20a9632bc5d62934d1f9990ed24389f5a52.tar.gz
iff-library-2a2dc20a9632bc5d62934d1f9990ed24389f5a52.tar.bz2
iff-library-2a2dc20a9632bc5d62934d1f9990ed24389f5a52.zip
Keine Änderungen
Diffstat (limited to 'Source/GetViewModes.S')
-rw-r--r--Source/GetViewModes.S43
1 files changed, 20 insertions, 23 deletions
diff --git a/Source/GetViewModes.S b/Source/GetViewModes.S
index ff98a82..c59900a 100644
--- a/Source/GetViewModes.S
+++ b/Source/GetViewModes.S
@@ -1,11 +1,10 @@
**
-** $Id: GetViewModes.S,v 21.1 92/05/15 03:22:48 chris Exp $
-** $Revision: 21.1 $
+** $Id: GetViewModes.S,v 21.2 92/05/18 02:18:15 chris Exp $
+** $Revision: 21.2 $
**
** $Filename: GetViewModes.S $
** $Author: chris $
-** $Release: 19.1 $
-** $Date: 92/05/15 03:22:48 $
+** $Date: 92/05/18 02:18:15 $
**
** iff.library/IFFL_GetViewModes
**
@@ -20,6 +19,7 @@
IDNT IFFL_GetViewModes
SECTION text,CODE
+ INCLUDE "graphics/view.i"
INCLUDE "IffLib.i"
XREF FindChunkFunc,GetBMHDFunc
@@ -67,16 +67,8 @@
*
*****************************************************************************
- *** Flags, die nur in graphics/view.h aber nicht .i sind (!)
-HAM: EQU $0800
-SPRITES: EQU $4000
-VP_HIDE: EQU $2000
-GENLOCK_AUDIO: EQU $0100
-GENLOCK_VIDEO: EQU $0002
-EXTRA_HALFBRITE: EQU $0080
-
-MODESMASK: EQU ~(SPRITES|VP_HIDE|GENLOCK_AUDIO|GENLOCK_VIDEO)
+MODESMASK EQU ~(V_SPRITES|V_VP_HIDE|GENLOCK_AUDIO|GENLOCK_VIDEO)
GetViewModesFunc:
move.l a2,-(SP)
@@ -84,24 +76,28 @@ GetViewModesFunc:
movea.l a1,a2 ; A2 : IFFFile
move.l #'CAMG',d0
bsr FindChunkFunc ; setzt Z-Flag wenn not found
- beq.s CalcEm ; not found ---> Berechnen
+ beq.b CalcEm ; not found ---> Berechnen
movea.l d0,a0 ; Zeiger auf CAMG....
move.l 8(a0),d0 ; ViewModes
+ tst.w 8(a0) ; Oberes WORD == 0 ?
+ bne.b 1$ ; Nein ---> Nix ausmaskieren
andi.l #MODESMASK,d0 ; Verbotene Bits ausmaskieren
- bra.s Ende ; --->
+1$: bra.b Ende ; --->
- *** ViewModes aus BMHD berechnen, 0 falls kein CAMG
+ *** ViewModes aus BMHD berechnen, 0 falls kein BMHD
CalcEm: movea.l a2,a1 ; IFFFile
bsr GetBMHDFunc ; BitMapHeader suchen
;; tst.l d0 ; nicht gefunden?
- beq.s Ende ; dann 0 zurückgeben
+ beq.b Ende ; dann 0 zurückgeben
movea.l d0,a0 ; A0 : BMHD-Struktur
- bsr.s CalcViewModes ; ViewModes nach D0
+ bsr.b CalcViewModes ; ViewModes nach D0
+ IFD OLDBADHAMPICTURES
cmpi.b #6,bmh_nPlanes(a0) ; 6 Bitplanes ?
- blt.s Ende ; nein --->
+ blt.b Ende ; nein --->
bset #11,d0 ; ViewModes |= HAM
+ ENDC
Ende:
movea.l (SP)+,a2
rts
@@ -130,7 +126,8 @@ Ende:
* viewmodes - ULONG containing the view modes (LACE, HIRES)
*
* BUGS
-* too many to mention
+* Knows nothing about Monitor IDs or new View modes like SUPERHIRES
+* or HAM8. You should not use this function in new code.
*
* SEE ALSO
* IFFL_GetViewModes(), IFFL_SaveClip()
@@ -140,14 +137,14 @@ Ende:
CalcViewModes: moveq.l #0,d0 ; D0 : ViewModes
cmpi.b #4,bmh_nPlanes(a0) ; mehr als 4 Planes ?
- bgt.s NotHiRes ; ja ---> nicht HiRes
+ bgt.b NotHiRes ; ja ---> nicht HiRes
cmpi.w #400,bmh_Width(a0) ; Bildbreite > 400 ?
- ble.s NotHiRes ; nein --->
+ ble.b NotHiRes ; nein --->
bset #15,d0 ; ViewModes |= HiRes
NotHiRes:
cmpi.w #320,bmh_Height(a0) ; Bildhöhe > 320 ?
- blt.s NotInterlace ; nein --->
+ blt.b NotInterlace ; nein --->
bset #2,d0 ; ViewModes |= Interlace
NotInterlace:
rts