Check_Chipset: MOVEM.L D0/D1/D2/A0,-(SP) lea $dff000,a0 ;CUSTOM move.w $7c(a0),d0 ;display chip id moveq #31,d2 ;check 32 times and.w #$00ff,d0 .loop move.w $7c(a0),d1 ;display chip id and.w #$00ff,d1 cmp.b d0,d1 bne.b .no_aga ;not the same value, then ocs denise dbra d2,.loop or.b #$f0,d0 cmp.b #$fc,d0 beq.b .no_aga cmp.b #$f8,d0 bne.b .no_aga move.w 4(a0),d0 ;vposr and.w #$7f00,d0 lsr.w #8,d0 cmp.w #$22,d0 beq.w .aga cmp.w #$23,d0 beq.w .aga cmp.w #$32,d0 beq.w .aga cmp.w #$33,d0 beq.w .aga .no_aga moveq #0,d0 bra.b .exit .aga moveq #-1,d0 .exit MOVEM.L (SP)+,D0/D1/D2/A0 rts