Subject: RasterOps 24S (was: ae0: device timeout on 1.5.x)
To: NetBSD/mac68k list <port-mac68k@netbsd.org>
From: John Valdes <valdes@uchicago.edu>
List: port-mac68k
Date: 01/05/2002 16:37:59
--uAKRQypu60I7Lcqm
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Thu, Jan 03, 2002 at 09:29:13PM -0600, I wrote:
> On Wed, Jan 02, 2002 at 08:25:41PM -0500, Allen Briggs wrote:
> > Hmmm...  The video interrupt for the 24S is likely to be similar to one
> > of the other RasterOps cards.  I see support for the video interrupt for
> > the 8/24 XLi, 24XlTV, 24MxTV, and PaintBoard Prism GT 1.0.
> > 
> Good suggestion, but unfortunately, neither worked. [...]
> 
> Looks like I'll have to spend more time in MacsBug... ;)  I've at
> least now found where the video driver calls SIntInstall and am now
> trying to track down the address of the interrupt handler...

Well, I've peeked around in MacsBug some more, and I have now located
the interrupt handler (disassembled below).  I turns out (surprise!)
to be very similar to the RasterOps Colorboard 364; overall logic and
even most of the addresses and values written are the same, but
unfortunately not exactly.  While it's ugly, at least for a first
iteration, I think I'll simply transcribe the assembly of the
interrupt routine into a function much like grfmv_intr_cb364() in
grf_nubus.c.

Comments?

John

--uAKRQypu60I7Lcqm
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment; filename="ropsintr.s"
Content-Transfer-Encoding: 8bit

 Disassembling from b016
  No procedure name
            0000B016   MOVEM.L    D1-D7/A0-A5,-(A7)                       | 48E7 7FFC
            0000B01A   MOVEC      CACR,D5                                 | 4E7A 5002
            0000B01E   MOVE.L     D5,D0                                   | 2005
            0000B020   ANDI.W     #$FEFE,D0                               | 0240 FEFE
            0000B024   MOVEC      D0,CACR                                 | 4E7B 0002
            0000B028   MOVEQ      #$01,D0                                 | 7001
            0000B02A   _SwapMMUMode                          ; 000040DE   | A05D
            0000B02C   MOVE.W     D0,D3                                   | 3600
            0000B02E   MOVE.L     A1,D2                                   | 2409
            0000B030   ANDI.L     #$FF000000,D2                           | 0282 FF00 0000
            0000B036   MOVEA.L    D2,A0                                   | 2042
            0000B038   MOVE.L     ($00FE6028,A0),D0                       | 2030 0170 00FE Š
            0000B040   AND.L      #$00000002,D0                           | C0BC 0000 0002
            0000B046   BEQ.S      *+$005A                    ; 0000B0A0   | 6758
            0000B048   MOVEQ      #$03,D0                                 | 7003
            0000B04A   MOVE.B     ($00FE7018,A0),D4                       | 1830 0170 00FE Š
            0000B052   ANDI.B     #$FD,($00FE7018,A0)                     | 0230 00FD 0170 Š
            0000B05C   MOVE.L     ($00FE6028,A0),D2                       | 2430 0170 00FE Š
            0000B064   ORI.B      #$02,($00FE7018,A0)                     | 0030 0002 0170 Š
            0000B06E   MOVE.L     ($00FE6028,A0),D6                       | 2C30 0170 00FE Š
            0000B076   MOVE.B     D4,($00FE7018,A0)                       | 1184 0170 00FE Š
            0000B07E   MOVE.L     ($00FE6020,A0),D1                       | 2230 0170 00FE Š
            0000B086   BTST       #$00,D2                                 | 0802 0000
            0000B08A   BEQ.S      *+$000C                    ; 0000B096   | 670A
            0000B08C   BTST       #$00,D1                                 | 0801 0000
            0000B090   BEQ.S      *+$0012                    ; 0000B0A2   | 6710
            0000B092   BSR.S      *+$0050                    ; 0000B0E2   | 614E
            0000B094   BRA.S      *+$0022                    ; 0000B0B6   | 6020
            0000B096   BTST       #$00,D1                                 | 0801 0000
            0000B09A   BNE.S      *+$0008                    ; 0000B0A2   | 6606
            0000B09C   BSR.S      *+$0046                    ; 0000B0E2   | 6144
            0000B09E   BRA.S      *+$0018                    ; 0000B0B6   | 6016
            0000B0A0   MOVEQ      #$00,D0                                 | 7000
            0000B0A2   MOVE.L     ($00FE600C,A0),D4                       | 2830 0170 00FE Š
            0000B0AA   AND.L      #$00000003,D4                           | C8BC 0000 0003
            0000B0B0   CMP.L      D4,D0                                   | B084
            0000B0B2   BEQ.S      *+$0004                    ; 0000B0B6   | 6702
            0000B0B4   BSR.S      *+$002E                    ; 0000B0E2   | 612C
            0000B0B6   MOVE.L     #$00000001,($00FE6014,A0)               | 21BC 0000 0001 Š
            0000B0C2   MOVE.W     D3,D0                                   | 3003
            0000B0C4   _SwapMMUMode                          ; 000040DE   | A05D
            0000B0C6   MOVEC      D5,CACR                                 | 4E7B 5002
            0000B0CA   MOVE.L     A1,D0                                   | 2009
            0000B0CC   ROL.L      #$8,D0                                  | E198
            0000B0CE   ANDI.L     #$0000000F,D0                           | 0280 0000 000F
            0000B0D4   MOVEA.L    JVBLTask,A0                             | 2078 0D28
            0000B0D8   JSR        (A0)                                    | 4E90
            0000B0DA   MOVEM.L    (A7)+,D1-D7/A0-A5                       | 4CDF 3FFE
            0000B0DE   MOVEQ      #$01,D0                                 | 7001
            0000B0E0   RTS                                                | 4E75
            0000B0E2   MOVE.L     D0,($00FE600C,A0)                       | 2180 0170 00FE Š
            0000B0EA   NOP                                                | 4E71
            0000B0EC   TST.B      D0                                      | 4A00
            0000B0EE   BEQ        *+$01CC                    ; 0000B2BA   | 6700 01CA
            0000B0F2   BTST       #$00,D6                                 | 0806 0000
            0000B0F6   BEQ        *+$00E4                    ; 0000B1DA   | 6700 00E2
            0000B0FA   MOVE.L     #$00000002,($00FE6040,A0)               | 21BC 0000 0002 Š
            0000B106   MOVE.L     #$00000105,($00FE6048,A0)               | 21BC 0000 0105 Š
            0000B112   MOVE.L     #$0000000E,($00FE604C,A0)               | 21BC 0000 000E Š
            0000B11E   MOVE.L     #$000000C3,($00FE6058,A0)               | 21BC 0000 00C3 Š
            0000B12A   MOVE.L     #$00000061,($00FE605C,A0)               | 21BC 0000 0061 Š
            0000B136   ORI.B      #$20,($00FE7018,A0)        ; ' '        | 0030 0020 0170 Š
            0000B140   BTST       #$00,D2                                 | 0802 0000
            0000B144   BEQ.S      *+$004C                    ; 0000B190   | 674A
            0000B146   MOVE.L     #$0000001C,($00FE6050,A0)               | 21BC 0000 001C Š
            0000B152   MOVE.L     #$000000BC,($00FE6054,A0)               | 21BC 0000 00BC Š
            0000B15E   MOVE.L     #$00000012,($00FE6060,A0)               | 21BC 0000 0012 Š
            0000B16A   MOVE.L     #$00000102,($00FE6044,A0)               | 21BC 0000 0102 Š
            0000B176   ORI.L      #$00000040,($00FE6064,A0)               | 00B0 0000 0040 Š
            0000B182   MOVE.L     #$00000000,($00FE6020,A0)               | 21BC 0000 0000 Š
            0000B18E   RTS                                                | 4E75
            0000B190   MOVE.L     #$00000016,($00FE6050,A0)               | 21BC 0000 0016 Š
            0000B19C   MOVE.L     #$000000B6,($00FE6054,A0)               | 21BC 0000 00B6 Š
            0000B1A8   MOVE.L     #$00000011,($00FE6060,A0)               | 21BC 0000 0011 Š
            0000B1B4   MOVE.L     #$00000101,($00FE6044,A0)               | 21BC 0000 0101 Š
            0000B1C0   ANDI.L     #$000000BF,($00FE6064,A0)               | 02B0 0000 00BF Š
            0000B1CC   MOVE.L     #$00000001,($00FE6020,A0)               | 21BC 0000 0001 Š
            0000B1D8   RTS                                                | 4E75
            0000B1DA   MOVE.L     #$00000002,($00FE6040,A0)               | 21BC 0000 0002 Š
            0000B1E6   MOVE.L     #$00000137,($00FE6048,A0)               | 21BC 0000 0137 Š
            0000B1F2   MOVE.L     #$00000010,($00FE604C,A0)               | 21BC 0000 0010 Š
            0000B1FE   MOVE.L     #$000000EB,($00FE6058,A0)               | 21BC 0000 00EB Š
            0000B20A   MOVE.L     #$00000075,($00FE605C,A0)               | 21BC 0000 0075 Š
            0000B216   ANDI.B     #$DF,($00FE7018,A0)                     | 0230 00DF 0170 Š
            0000B220   BTST       #$00,D2                                 | 0802 0000
            0000B224   BEQ.S      *+$004C                    ; 0000B270   | 674A
            0000B226   MOVE.L     #$00000036,($00FE6050,A0)               | 21BC 0000 0036 Š
            0000B232   MOVE.L     #$000000D6,($00FE6054,A0)               | 21BC 0000 00D6 Š
            0000B23E   MOVE.L     #$00000029,($00FE6060,A0)               | 21BC 0000 0029 Š
            0000B24A   MOVE.L     #$00000119,($00FE6044,A0)               | 21BC 0000 0119 Š
            0000B256   ORI.L      #$00000040,($00FE6064,A0)               | 00B0 0000 0040 Š
            0000B262   MOVE.L     #$00000000,($00FE6020,A0)               | 21BC 0000 0000 Š
            0000B26E   RTS                                                | 4E75
            0000B270   MOVE.L     #$0000002E,($00FE6050,A0)               | 21BC 0000 002E Š
            0000B27C   MOVE.L     #$000000CE,($00FE6054,A0)               | 21BC 0000 00CE Š
            0000B288   MOVE.L     #$0000002D,($00FE6060,A0)               | 21BC 0000 002D Š
            0000B294   MOVE.L     #$0000011D,($00FE6044,A0)               | 21BC 0000 011D Š
            0000B2A0   ANDI.L     #$000000BF,($00FE6064,A0)               | 02B0 0000 00BF Š
            0000B2AC   MOVE.L     #$00000001,($00FE6020,A0)               | 21BC 0000 0001 Š
            0000B2B8   RTS                                                | 4E75
            0000B2BA   MOVE.L     #$00000002,($00FE6040,A0)               | 21BC 0000 0002 Š
            0000B2C6   MOVE.L     #$00000209,($00FE6044,A0)               | 21BC 0000 0209 Š
            0000B2D2   MOVE.L     #$0000020C,($00FE6048,A0)               | 21BC 0000 020C Š
            0000B2DE   MOVE.L     #$0000000F,($00FE604C,A0)               | 21BC 0000 000F Š
            0000B2EA   MOVE.L     #$00000027,($00FE6050,A0)               | 21BC 0000 0027 Š
            0000B2F6   MOVE.L     #$000000C7,($00FE6054,A0)               | 21BC 0000 00C7 Š
            0000B302   MOVE.L     #$000000D7,($00FE6058,A0)               | 21BC 0000 00D7 Š
            0000B30E   MOVE.L     #$0000006B,($00FE605C,A0)               | 21BC 0000 006B Š
            0000B31A   MOVE.L     #$00000029,($00FE6060,A0)               | 21BC 0000 0029 Š
            0000B326   ORI.L      #$00000040,($00FE6064,A0)               | 00B0 0000 0040 Š
            0000B332   MOVE.L     #$00000000,($00FE6020,A0)               | 21BC 0000 0000 Š
            0000B33E   ORI.B      #$20,($00FE7018,A0)        ; ' '        | 0030 0020 0170 Š
            0000B348   RTS                                                | 4E75
 Closing log

--uAKRQypu60I7Lcqm--