Disassembling from _IOPInfoAccess _IOPInfoAccess +0000 40804CC0 MOVEM.L D3/D4/A2-A4,-(A7) | 48E7 1838 +0004 40804CC4 MOVEQ #$00,D0 | 7000 +0006 40804CC6 MOVEQ #$00,D1 | 7200 +0008 40804CC8 MOVE.B (A0),D1 | 1210 +000A 40804CCA CMPI.B #$02,D1 | 0C01 0002 +000E 40804CCE BHI.S _IOPInfoAccess+002E ; 40804CEE | 621E +0010 40804CD0 MOVE.W _IOPInfoAccesÉ8(D1.W*2),D2 ; 40804CE8 | 343B 1216 +0014 40804CD4 MOVE.B $0001(A0),D1 | 1228 0001 +0018 40804CD8 CMPI.B #$07,D1 | 0C01 0007 +001C 40804CDC BHI.S _IOPInfoAccess+002E ; 40804CEE | 6210 +001E 40804CDE LEA ([$0C28,ZA0],D1.W*4),A1 | 43F0 15A5 0C28 +0024 40804CE4 JMP _IOPInfoAccess+0028(D2.W) ; 40804CE8 | 4EFB 2002 +0028 40804CE8 ORI.B #$0A,(A4)+ | 001C 000A +002C 40804CEC ORI.B #$70CE,(A4) | 0014 70CE +0030 40804CF0 BRA.S _IOPInfoAccess+0036 ; 40804CF6 | 6004 +0032 40804CF2 MOVE.L (A1),$0004(A0) | 2151 0004 +0036 40804CF6 MOVEM.L (A7)+,D3/D4/A2-A4 | 4CDF 1C18 +003A 40804CFA RTS | 4E75 ; ------------------------------------------------------------------------------- ; Notes from Joaquin: ; I'm having trouble understanding this. Nothing above seems to jump ; down below. Nevertheless, I copied this because it looks interesting. ; ; Macintosh IIfx (10/97) ; ------------------------------------------------------------------------------------ +003C 40804CFC MOVE.L (A1),$0004(A0) | 2151 0004 +0040 40804D00 CLR.L (A1) | 4291 +0042 40804D02 BRA.S _IOPInfoAccess+0036 ; 40804CF6 | 60F2 +0044 40804D04 TST.L (A1) | 4A91 +0046 40804D06 BNE.S _IOPInfoAccess+002E ; 40804CEE | 66E6 +0048 40804D08 MOVEA.L $0004(A0),A4 | 2868 0004 +004C 40804D0C MOVE.L D1,D3 | 2601 +004E 40804D0E SUBQ.L #$4,A7 | 598F +0050 40804D10 MOVE.L #$696F7063,-(A7) ; 'iopc' | 2F3C 696F 7063 +0056 40804D16 MOVE.W D3,-(A7) | 3F03 +0058 40804D18 _rGetResource ; A80C | A80C +005A 40804D1A MOVE.L (A7)+,D0 | 201F +005C 40804D1C BEQ.S _IOPInfoAccess+002E ; 40804CEE | 67D0 +005E 40804D1E MOVEA.L D0,A0 | 2040 +0060 40804D20 MOVEA.L (A0),A0 | 2050 +0062 40804D22 MOVE SR,-(A7) | 40E7 +0064 40804D24 ORI.W #$0700,SR | 007C 0700 +0068 40804D28 MOVEA.L (A4)+,A2 | 245C +006A 40804D2A MOVEA.L (A4)+,A3 | 265C +006C 40804D2C MOVEA.L (A4),A1 | 2254 +006E 40804D2E MOVE.B #$32,(A1) ; '2' | 12BC 0032 +0072 40804D32 MOVE.W #$7FFF,D0 | 303C 7FFF +0076 40804D36 MOVEQ #$FF,D1 | 72FF +0078 40804D38 MOVE.W D0,(A2) | 3480 +007A 40804D3A MOVE.B D1,(A3) | 1681 +007C 40804D3C DBF D0,_IOPInfoAccess+0078 ; 40804D38 | 51C8 FFFA +0080 40804D40 MOVE.W #$7FFF,D0 | 303C 7FFF +0084 40804D44 MOVE.W D0,(A2) | 3480 +0086 40804D46 MOVE.B (A3),D1 | 1213 +0088 40804D48 NOT.B D1 | 4601 +008A 40804D4A MOVE.W D0,(A2) | 3480 +008C 40804D4C MOVE.B D1,(A3) | 1681 +008E 40804D4E DBNE D0,_IOPInfoAccess+0084 ; 40804D44 | 56C8 FFF4 +0092 40804D52 BNE.S _IOPInfoAccess+00DC ; 40804D9C | 6648 +0094 40804D54 MOVE.W #$7FFF,D0 | 303C 7FFF +0098 40804D58 MOVE.W D0,(A2) | 3480 +009A 40804D5A MOVE.B (A3),D1 | 1213 +009C 40804D5C DBNE D0,_IOPInfoAccess+0098 ; 40804D58 | 56C8 FFFA +00A0 40804D60 BNE.S _IOPInfoAccess+00DC ; 40804D9C | 663A +00A2 40804D62 MOVEA.L A0,A1 | 2248 +00A4 40804D64 MOVE.B (A0)+,D0 | 1018 +00A6 40804D66 BEQ.S _IOPInfoAccess+00C0 ; 40804D80 | 6718 +00A8 40804D68 MOVE.W (A0)+,(A2) | 3498 +00AA 40804D6A MOVE.B (A0)+,(A3) | 1698 +00AC 40804D6C SUBQ.B #$1,D0 | 5300 +00AE 40804D6E BNE.S _IOPInfoAccess+00AA ; 40804D6A | 66FA +00B0 40804D70 MOVE.B (A1)+,D0 | 1019 +00B2 40804D72 MOVE.W (A1)+,(A2) | 3499 +00B4 40804D74 MOVE.B (A3),D1 | 1213 +00B6 40804D76 CMP.B (A1)+,D1 | B219 +00B8 40804D78 BNE.S _IOPInfoAccess+00DC ; 40804D9C | 6622 +00BA 40804D7A SUBQ.B #$1,D0 | 5300 +00BC 40804D7C BNE.S _IOPInfoAccess+00B4 ; 40804D74 | 66F6 +00BE 40804D7E BRA.S _IOPInfoAccess+00A4 ; 40804D64 | 60E4 +00C0 40804D80 MOVE.W #$031F,(A2) | 34BC 031F +00C4 40804D84 CLR.B (A3) | 4213 +00C6 40804D86 MOVEA.L (A4),A1 | 2254 +00C8 40804D88 MOVE.B #$36,(A1) ; '6' | 12BC 0036 +00CC 40804D8C MOVEQ #$FF,D0 | 70FF +00CE 40804D8E MOVE.W #$031F,(A2) | 34BC 031F +00D2 40804D92 CMPI.B #$FF,(A3) | 0C13 00FF +00D6 40804D96 DBEQ D0,_IOPInfoAccess+00CE ; 40804D8E | 57C8 FFF6 +00DA 40804D9A BEQ.S _IOPInfoAccess+00E2 ; 40804DA2 | 6706 +00DC 40804D9C MOVE (A7)+,SR | 46DF +00DE 40804D9E BRA _IOPInfoAccess+002E ; 40804CEE | 6000 FF4E +00E2 40804DA2 MOVE.W #$0200,(A2) | 34BC 0200 +00E6 40804DA6 ADDQ.L #$8,A4 | 508C +00E8 40804DA8 MOVE.B (A3),(A4)+ | 18D3 +00EA 40804DAA MOVE.W #$0300,(A2) | 34BC 0300 +00EE 40804DAE MOVE.B (A3),(A4) | 1893 +00F0 40804DB0 SUBA.W #$0011,A4 | 98FC 0011 +00F4 40804DB4 MOVE.L A4,([$0C28,ZA0],D3.W*4) | 218C 35A5 0C28 +00FA 40804DBA LEA $0014(A4),A0 | 41EC 0014 +00FE 40804DBE LEA $0006(A0),A1 | 43E8 0006 +0102 40804DC2 MOVE.B D3,(A1)+ | 12C3 +0104 40804DC4 MOVE.B #$02,(A1)+ | 12FC 0002 +0108 40804DC8 MOVE.L #$010C0C00,(A1)+ | 22FC 010C 0C00 +010E 40804DCE LEA $002C(A4),A2 | 45EC 002C +0112 40804DD2 MOVE.L A2,(A1)+ | 22CA +0114 40804DD4 MOVE.L A2,(A1)+ | 22CA +0116 40804DD6 LEA _IOPInfoAccess+0538,A2 ; 408051F8 | 45FA 0420 +011A 40804DDA MOVE.L A2,(A1)+ | 22CA +011C 40804DDC _IOPMsgRequest ; A087 | A087 +011E 40804DDE MOVE (A7)+,SR | 46DF +0120 40804DE0 BRA _IOPInfoAccess+0036 ; 40804CF6 | 6000 FF14 +0124 40804DE4 MOVEM.L D3/D4/A2/A3,-(A7) | 48E7 1830 +0128 40804DE8 MOVEQ #$CE,D0 | 70CE +012A 40804DEA MOVEQ #$00,D2 | 7400 +012C 40804DEC LEA $0006(A0),A1 | 43E8 0006 +0130 40804DF0 MOVE.B (A1)+,D2 | 1419 +0132 40804DF2 CMPI.W #$0007,D2 | 0C42 0007 +0136 40804DF6 BHI.S _IOPInfoAccess+0160 ; 40804E20 | 6228 +0138 40804DF8 MOVEA.L $0C28,A2 | 2478 0C28 +013C 40804DFC MOVEA.L $00(A2,D2.W*4),A2 | 2472 2400 +0140 40804E00 MOVE.L A2,D3 | 260A +0142 40804E02 BEQ.S _IOPInfoAccess+015C ; 40804E1C | 6718 +0144 40804E04 MOVE.B $0010(A2),D3 | 162A 0010 +0148 40804E08 MOVE.B (A1)+,D2 | 1419 +014A 40804E0A BEQ.S _IOPInfoAccess+0150 ; 40804E10 | 6704 +014C 40804E0C MOVE.B $0011(A2),D3 | 162A 0011 +0150 40804E10 CMPI.W #$0003,D2 | 0C42 0003 +0154 40804E14 BHI.S _IOPInfoAccess+0160 ; 40804E20 | 620A +0156 40804E16 MOVE.W _IOPInfoAccesÉ8(D2.W*2),D1 ; 40804E38 | 323B 2220 +015A 40804E1A MOVE.B (A1)+,D2 | 1419 +015C 40804E1C BEQ.S _IOPInfoAccess+01D6 ; 40804E96 | 6778 +015E 40804E1E CMP.B D3,D2 | B403 +0160 40804E20 BHI.S _IOPInfoAccess+01D6 ; 40804E96 | 6274 +0162 40804E22 MOVE.W D2,D3 | 3602 +0164 40804E24 LSL.W #$4,D2 | E94A +0166 40804E26 MOVEQ #$20,D4 ; ' ' | 7820 +0168 40804E28 CMP.B (A1)+,D4 | B819 +016A 40804E2A BCS.S _IOPInfoAccess+01D6 ; 40804E96 | 656A +016C 40804E2C CMP.B (A1)+,D4 | B819 +016E 40804E2E BCS.S _IOPInfoAccess+01D6 ; 40804E96 | 6566 +0170 40804E30 LEA $28(A2,D2.W),A3 | 47F2 2028 +0174 40804E34 JMP _IOPInfoAccess+0178(D1.W) ; 40804E38 | 4EFB 1002 +0178 40804E38 ORI.B #$68,A0 ; 'h' | 0008 0068 +017C 40804E3C ORI.L #$009050D1,D6 | 0086 0090 50D1 +0182 40804E42 LEA $0006(A3),A1 | 43EB 0006 +0186 40804E46 MOVE SR,D2 | 40C2 +0188 40804E48 ORI.W #$0700,SR | 007C 0700 +018C 40804E4C CMPA.L $0002(A1),A0 | B1E9 0002 +0190 40804E50 BEQ.S _IOPInfoAccess+019C ; 40804E5C | 670A +0192 40804E52 JSR _EnQueue ; 40809930 | 4EBA 4ADC +0196 40804E56 CMPA.L $0002(A1),A0 | B1E9 0002 +019A 40804E5A BNE.S _IOPInfoAccess+01DC ; 40804E9C | 6640 +019C 40804E5C MOVE D2,SR | 46C2 +019E 40804E5E MOVEQ #$00,D0 | 7000 +01A0 40804E60 MOVE.B $0009(A0),D0 | 1028 0009 +01A4 40804E64 MOVEA.L $000C(A0),A1 | 2268 000C +01A8 40804E68 MOVE.B #$01,-(A7) | 1F3C 0001 +01AC 40804E6C ORI.W #$0200,D3 | 0043 0200 +01B0 40804E70 MOVE.W D3,-(A7) | 3F03 +01B2 40804E72 LSL.B #$5,D3 | EB0B +01B4 40804E74 MOVE.L $0008(A2),-(A7) | 2F2A 0008 +01B8 40804E78 MOVEA.L $0004(A2),A3 | 266A 0004 +01BC 40804E7C MOVEA.L (A2),A2 | 2452 +01BE 40804E7E MOVE.W (A2),-(A7) | 3F12 +01C0 40804E80 MOVE.W D3,(A2) | 3483 +01C2 40804E82 BSR _IOPInfoAccess+02E0 ; 40804FA0 | 6100 011C +01C6 40804E86 MOVE.W (A7)+,D0 | 301F +01C8 40804E88 MOVEA.L (A7)+,A1 | 225F +01CA 40804E8A MOVE.W (A7)+,(A2) | 349F +01CC 40804E8C MOVE.B (A7)+,(A3) | 169F +01CE 40804E8E MOVE.W D0,(A2) | 3480 +01D0 40804E90 MOVE.B #$0E,(A1) | 12BC 000E +01D4 40804E94 MOVEQ #$00,D0 | 7000 +01D6 40804E96 MOVEM.L (A7)+,D3/D4/A2/A3 | 4CDF 0C18 +01DA 40804E9A RTS | 4E75