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--