[#91] Re: Turbo do A3/4000

@bogumil, post #89

A jakie to są te adresy pomiędzy ZII, a ZIII? :) No bo ZII to $0-$FFFFFF, a zIII to $1000000-$FFFFFFFF, więc pomiędzy nie ma nic. autoconfig dla Z2 pojawia się pod $E80000, a dla ZIII pod FF000000. Nie miałem jakichś większych problemów z pamięcią pod Z2, autoconfig pod Z3 wydaje się mieć więcej opcji (W tym automatyczne wykrywanie rozmiaru), ale czyżby jest aż tyle trudniejsze?
[#92] Re: Turbo do A3/4000

@sanjyuubi, post #91

ZIII to $1000 0000 - $8000 0000 wg dokumentacji ( nie piszę o obszarze dla autoconfig na końcu 4GB),
ZII to $0020 0000 - $00A0 0000/$00B8 0000 też za dokumentacją i też bez autoconfig.
Jak robiłem testy z ZII to nic w adresacji CHIP ani ROM czy rejestrów się nie zgłaszało.
Może jest jakiś inny sposób na ZII w adresach pamięci CHIP;).
Wracając do meritum.
Chodzi mi o adresy $0100 0000 - $0FFF FFFF. Tam właśnie jest lokowana pamięć w Blizzardzie PPC i pewnie IV i 040/060.
A moje pytanie jest, w jaki sposób się się ją zgłasza w systemie?
To nie jest obszar Zorro II/III w dokumentacji.

Ostatnia aktualizacja: 05.09.2014 18:50:46 przez bogumil
[#93] Re: Turbo do A3/4000

@bogumil, post #92

Autoconfig z obszaru ZII pozwala na dodawanie pamięci tylko pomiędzy $200000-$9FFFFF.

Jeżeli na blizzardzie jest bootrom, to autoconfig może być wykorzystany np. tylko do uruchomienia bootromu, a sama pamięć dodawana przez kod znajdujący się w bootromie.
[#94] Re: Turbo do A3/4000

@sanjyuubi, post #93

Tak wlaśnie jest w Blizzardach (kiedyś sprawdzałem).
[#95] Re: Turbo do A3/4000

@bogumil, post #89

Masz tu bootstrap ($00F00000) od Blizzarda, kod sprawdzajacy czy dana pamiec
jest i alokujacy pamiec jest pod lbC000610. Ogolnie to wystarczy
wywolac tylko AddMemList z odpowiednimi parametrami. No ale kiedys
to pamiec byla droga i ludzie dokupowali ja po trochu, a nie obsadzali
od razu wszystkie sloty SIMM-ow. Z kodu wynika, ze Blizzard mial tez
wlasna pamiec pod adresem $F60000.

dc.w $1111

 BRA.W lbC0000C4

 NOP
 dc.l $7D13466A
 dc.l $4D8E26E6
 dc.b 'ICB0369',0   ; ID number
lbL000018 dc.l $369   ; ID hex ?
 dc.l $9FB8D981
lbL000020 dc.l $756F54AA  ; checksum
 dc.l 0
 dc.l 0
 dc.l 0
 dc.l 0
 dc.l 0
 dc.l 0
 dc.l 0
 dc.l 0
 dc.l 0
 dc.b 0
 dc.b '$VER: 68060 BootStrap V1.9 (c) Ralph Schmidt'
 dc.b ' 1993-2001',$A,$D,0
 dc.b '$VER: Blizzard PPC Bootstrap V 1.9 (c) Ralph'
 dc.b ' Schmidt 1993-2001',$A,$D,0
 dc.b 0

lbC0000C4 MOVE.B #$13,($F60000)
 MOVE.L D5,D7
 LEA ($BFE001),A3
 MOVE.B #3,($200,A3)
 MOVE.B #2,(A3)
 LEA ($DFF000),A4
 MOVE.W #$7FFF,D0
 MOVE.W D0,($9A,A4)
 NOP
 MOVE.W D0,($9C,A4)
 NOP
 MOVE.W D0,($96,A4)
 NOP
 MOVE.W #$174,($32,A4)
 NOP
 MOVEC CACR,D0
 MOVE.L #0,D0
 MOVEC D0,CACR
 NOP
 MOVE.L SP,D4
 MOVEA.L #$FFFFFC,A6
 MOVEA.L A6,SP
 MOVE.L ($10),D3
 LEA (lbC000156,PC),A6
 MOVE.L A6,($10)
 dc.l $4E7A0808  ; MOVEC PCR,D0
 ANDI.L #2,D0
 CMP.L #2,D0
 BEQ.W lbC00014E
 FNOP
 MOVE.L #2,D0
 dc.l $4E7B0808  ; MOVEC D0,PCR
lbC00014E MOVE.L D3,($10)
 BRA.B lbC000162

lbC000156 MOVE.L D3,($10)
 MOVE.L #$DEADBEEF,D3
lbC000162 MOVEA.L D4,SP
 CMP.L #$DEADBEEF,D3
 BEQ.W lbC0001C2
 MOVEC TC,D0
 MOVE.L #$318,D0
 MOVEC D0,TC
 MOVEC ITT0,D0
 MOVE.L #$6060,D0
 MOVEC D0,ITT0
 MOVEC ITT1,D0
 MOVE.L #$6060,D0
 MOVEC D0,ITT1
 MOVEC DTT0,D0
 MOVE.L #$6060,D0
 MOVEC D0,DTT0
 MOVEC DTT1,D0
 MOVE.L #$6060,D0
 MOVEC D0,DTT1
 MOVEC TC,D0
 BCLR #15,D0
 MOVEC D0,TC
 NOP
lbC0001C2 MOVE.B #0,($E00,A3)
 NOP
 MOVE.B #0,($E00,A3)
 NOP
 MOVE.B #$40,($E00,A3)
 NOP
 MOVE.W #$61A8,D1
lbC0001DE NOP
 DBRA D1,lbC0001DE
 MOVE.B #0,($E00,A3)
 NOP
 MOVE.B #$FF,($F60038)
 MOVE.W #$200,($100,A4)
 MOVE.W #0,($110,A4)
 MOVE.W #0,($180,A4)
 MOVE.W #0,D0
 MOVE.W D0,($180,A4)
 MOVE.W #0,($180,A4)
lbC000214 MOVE.W #10,D1
lbC000218 NOP
 MOVE.B ($D00,A3),D2
 ANDI.B #8,D2
 BEQ.W lbC0002AE
 MOVE.B #$40,($E00,A3)
 NOP
 MOVE.W #$1388,D2
lbC000232 NOP
 DBRA D2,lbC000232
 CLR.L D2
 MOVE.B ($C00,A3),D2
 NOT.B D2
 ROR.B #1,D2
 CMP.B #2,D2
 BEQ.W lbC0002E4
 CMP.B #$21,D2
 BNE.W lbC00025A
 MOVE.B #1,($F60038)
lbC00025A CMP.B #$37,D2
 BNE.W lbC00026A
 MOVE.B #2,($F60038)
lbC00026A CMP.B #$33,D2
 BNE.W lbC00027C
 MOVE.B #4,($F60038)
 NOP
lbC00027C CMP.B #$19,D2
 BNE.W lbC00028E
 MOVE.B #8,($F60038)
 NOP
lbC00028E CMP.B #$20,D2
 BNE.W lbC00029E
 MOVE.B #15,($F60038)
lbC00029E CMP.B #$45,D2
 BEQ.W lbC0002BE
 MOVE.B #0,($E00,A3)
 NOP
lbC0002AE DBRA D1,lbC000218
 ADDI.W #1,D0
 CMP.W #$FFF,D0
 BNE.W lbC000214
lbC0002BE LEA (lbL000020,PC),A0
 MOVEQ #0,D0
 MOVE.L #$13FF8,D1
lbC0002CA ADD.L (A0)+,D0
 SUBQ.L #1,D1
 BNE.W lbC0002CA
 TST.L D0
 BEQ.B lbC0002E0
 MOVE.B #15,($F60038)
 NOP
lbC0002E0 MOVE.L D7,D5
 JMP (A5)

lbC0002E4 MOVE.L #$4000,D0
 MOVE.L #0,D1
 MOVEA.L #0,A0
lbC0002F6 MOVE.L D1,(A0)+
 DBRA D0,lbC0002F6
 MOVE.L #$11114EF9,(0)
 NOP
 MOVE.L #$F800D0,(4)
 NOP
 MOVEA.L #$F60000,A0
 MOVE.B #3,($200,A3)
 MOVE.B #3,(A3)
 NOP
 MOVE.B #$A0,(A0)
 NOP
 BRA.W lbC0002E0

 dc.l $CAFECAFE  ; unused ? MULU.W ????,D5
lbC000334 MOVE.L (4,A0),D0
 MOVE.L #$5AA5A55A,(4,A0)
 NOP
 CMPI.L #$5AA5A55A,(4,A1)
 BNE.B lbC000370
 MOVE.L #$A55A5AA5,(4,A0)
 NOP
 CMPI.L #$A55A5AA5,(4,A1)
 BNE.B lbC000370
 MOVE.L D0,(4,A0)
 NOP
 EXG D1,A1
 MOVE.L #1,D0
 JMP (A1)

lbC000370 MOVE.L D0,(4,A0)
 MOVE.L (A0),D0
 MOVE.L #$5AA5A55A,(A0)
 NOP
 CMPI.L #$5AA5A55A,(A1)
 BNE.B lbC0003A4
 MOVE.L #$A55A5AA5,(A0)
 NOP
 CMPI.L #$A55A5AA5,(A1)
 BNE.B lbC0003A4
 MOVE.L D0,(A0)
 NOP
 EXG D1,A1
 MOVE.L #1,D0
 JMP (A1)

lbC0003A4 MOVE.L D0,(A0)
 NOP
 EXG D1,A1
 MOVE.L #0,D0
 JMP (A1)

lbC0003B2 MOVE.L (4,A0),D0
 MOVE.B #$12,(4,A0)
 NOP
 MOVE.B #$34,(5,A0)
 NOP
 MOVE.B #$56,(6,A0)
 NOP
 MOVE.B #$78,(7,A0)
 NOP
 CMPI.L #$12345678,(4,A0)
 BNE.W lbC0004C0
 MOVE.L #0,(4,A0)
 NOP
 CMPI.L #0,(4,A0)
 BNE.W lbC0004C0
 MOVE.L #$5AA5A55A,(4,A0)
 NOP
 CMPI.L #$5AA5A55A,(4,A0)
 BNE.W lbC0004C0
 MOVE.L #$A55A5AA5,(4,A0)
 NOP
 CMPI.L #$A55A5AA5,(4,A0)
 BNE.W lbC0004C0
 MOVE.L #$FFFFFFFF,(4,A0)
 NOP
 CMPI.L #$FFFFFFFF,(4,A0)
 BNE.W lbC0004C0
 MOVE.L D0,(4,A0)
 NOP
 CMP.L (4,A0),D0
 BNE.W lbC0004C0
 MOVE.L (A0),D0
 MOVE.B #$12,(0,A0)
 NOP
 MOVE.B #$34,(1,A0)
 NOP
 MOVE.B #$56,(2,A0)
 NOP
 MOVE.B #$78,(3,A0)
 NOP
 CMPI.L #$12345678,(A0)
 BNE.B lbC0004C0
 MOVE.L #0,(A0)
 NOP
 CMPI.L #0,(A0)
 BNE.B lbC0004C0
 MOVE.L #$5AA5A55A,(A0)
 NOP
 CMPI.L #$5AA5A55A,(A0)
 BNE.B lbC0004C0
 MOVE.L #$A55A5AA5,(A0)
 NOP
 CMPI.L #$A55A5AA5,(A0)
 BNE.B lbC0004C0
 MOVE.L #$FFFFFFFF,(A0)
 NOP
 CMPI.L #$FFFFFFFF,(A0)
 BNE.B lbC0004C0
 MOVE.L D0,(A0)
 NOP
 CMP.L (A0),D0
 BNE.B lbC0004C0
 EXG D1,A1
 MOVEQ #1,D0
 JMP (A1)

lbC0004C0 EXG D1,A1
 MOVEQ #0,D0
 JMP (A1)

lbC0004C6 CMPA.L A2,A1
 BHI.W lbC00051E
 MOVEA.L A1,A0
 MOVE.L A0,D1
 LEA (lbC0004DA,PC),A0
 EXG D1,A0
 BRA.W lbC0003B2

lbC0004DA EXG D1,A1
 BEQ.W lbC00057C
lbC0004E0 ADDA.L #$80000,A0
 CMPA.L A0,A2
 BLS.W lbC000514
 MOVE.L A0,D1
 LEA (lbC0004F8,PC),A0
 EXG D1,A0
 BRA.W lbC0003B2

lbC0004F8 EXG D1,A1
 BEQ.W lbC000516
 MOVE.L A0,D1
 LEA (lbC00050A,PC),A0
 EXG D1,A0
 BRA.W lbC000334

lbC00050A EXG D1,A1
 BNE.W lbC000516
 BRA.W lbC0004E0

lbC000514 MOVEA.L A2,A0
lbC000516 MOVE.L A0,D0
 SUB.L A1,D0
 BRA.W lbC00057E

lbC00051E SUBA.L #8,A1
 SUBA.L #8,A2
 MOVEA.L A1,A0
 MOVE.L A0,D1
 LEA (lbC000538,PC),A0
 EXG D1,A0
 BRA.W lbC0003B2

lbC000538 EXG D1,A1
 BEQ.W lbC00057C
lbC00053E SUBA.L #$80000,A0
 CMPA.L A2,A0
 BLS.W lbC000572
 MOVE.L A0,D1
 LEA (lbC000556,PC),A0
 EXG D1,A0
 BRA.W lbC0003B2

lbC000556 EXG D1,A1
 BEQ.W lbC000574
 MOVE.L A0,D1
 LEA (lbC000568,PC),A0
 EXG D1,A0
 BRA.W lbC000334

lbC000568 EXG D1,A1
 BNE.W lbC000574
 BRA.W lbC00053E

lbC000572 MOVEA.L A2,A0
lbC000574 MOVE.L A1,D0
 SUB.L A0,D0
 BRA.W lbC00057E

lbC00057C MOVEQ #0,D0
lbC00057E JMP (A6)

lbC000580 MOVE.L ($7FFFFFFC),D1
 MOVE.L #0,($7FFFFFFC)
 NOP
 CMPI.L #0,($FFFFFC)
 BNE.B lbC0005C0
 MOVE.L #$5AA5A55A,($7FFFFFFC)
 NOP
 CMPI.L #$5AA5A55A,($FFFFFC)
 BNE.B lbC0005C0
 MOVE.L D1,($7FFFFFFC)
 MOVEQ #1,D1
 JMP (A6)

lbC0005C0 MOVE.L D1,($7FFFFFFC)
 MOVE.L ($77FFFFFC),D1
 MOVE.L #0,($77FFFFFC)
 NOP
 CMPI.L #0,($FFFFFC)
 BNE.B lbC000606
 MOVE.L #$5AA5A55A,($77FFFFFC)
 NOP
 CMPI.L #$5AA5A55A,($FFFFFC)
 BNE.B lbC000606
 MOVE.L D0,($77FFFFFC)
 MOVEQ #1,D1
 JMP (A6)

lbC000606 MOVE.L D0,($77FFFFFC)
 MOVEQ #0,D1
 JMP (A6)

lbC000610 MOVEM.L D0-D7/A0-A6,-(SP)
 MOVE.B #0,($F60053)
 NOP
 MOVEA.L #$48000000,A1
 MOVEA.L #$50000000,A2
 LEA (lbC000632,PC),A6
 BRA.W lbC0004C6

lbC000632 MOVE.L D0,D2
 MOVEA.L #$78000000,A1
 MOVEA.L #$80000000,A2
 LEA (lbC000648,PC),A6
 BRA.W lbC0004C6

lbC000648 MOVE.L D0,D3
 MOVEA.L #$48000000,A1
 MOVEA.L #$40000000,A2
 LEA (lbC00065E,PC),A6
 BRA.W lbC0004C6

lbC00065E MOVE.L D0,D4
 MOVEA.L #$78000000,A1
 MOVEA.L #$70000000,A2
 LEA (lbC000674,PC),A6
 BRA.W lbC0004C6

lbC000674 MOVE.L D0,D5
 MOVEA.L #$50000000,A1
 MOVEA.L #$48000000,A2
 LEA (lbC00068A,PC),A6
 BRA.W lbC0004C6

lbC00068A CMP.L D3,D2
 BHI.B lbC000694
 MOVE.L #0,D2
lbC000694 CMP.L D5,D4
 BHI.B lbC00069E
 MOVE.L #0,D4
lbC00069E OR.L D2,D2
 BNE.B lbC0006B0
 OR.L D3,D3
 BNE.B lbC0006B0
 MOVE.B #0,($F60052)
 NOP
lbC0006B0 MOVE.L #0,D0
 CMP.L D3,D2
 BHI.B lbC0006C0
 ORI.L #1,D0
lbC0006C0 CMP.L D5,D4
 BHI.B lbC0006CA
 ORI.L #2,D0
lbC0006CA CMP.L #0,D0
 BNE.B lbC0006E2
 MOVEA.L #$48000000,A0
 SUBA.L D4,A0
 MOVE.L D2,D0
 ADD.L D4,D0
 BRA.W lbC00071E

lbC0006E2 CMP.L #1,D0
 BNE.B lbC0006FA
 MOVEA.L #$58000000,A0
 SUBA.L D4,A0
 MOVE.L D3,D0
 ADD.L D4,D0
 BRA.W lbC00071E

lbC0006FA CMP.L #2,D0
 BNE.B lbC000712
 MOVEA.L #$68000000,A0
 SUBA.L D5,A0
 MOVE.L D2,D0
 ADD.L D5,D0
 BRA.W lbC00071E

lbC000712 MOVEA.L #$78000000,A0
 SUBA.L D5,A0
 MOVE.L D3,D0
 ADD.L D5,D0
lbC00071E CMP.L #$80000,D0
 BCS.B lbC000736
 LEA (lbC00072E,PC),A6
 BRA.W lbC000580

lbC00072E BEQ.B lbC000736
 SUBI.L #$80000,D0
lbC000736 CMP.L #$80000,D0
 BCS.B lbC000744
 SUBI.L #$80000,D0
lbC000744 MOVE.L #$505,D1
 MOVE.L #$28,D2
 MOVEA.L #0,A1
 CMP.L #0,D0
 BEQ.B lbC000768

******* exec.library/AddMemList ****************************************
*
*   NAME
* AddMemList - add memory to the system free pool
*
*   SYNOPSIS
* AddMemList( size, attributes, pri, base, name )
*                     D0      D1        D2   A0    A1

 MOVEA.L (4),A6
 JSR (-$26A,A6)
lbC000768 MOVEM.L (SP)+,D0-D7/A0-A6
 RTS

 dc.w 0

lbC000770 ILLEGAL
 dc.l lbC000770+$F00000
 dc.l lbC0007DC+$F00000
 dc.l $2010078
 dc.l BlizzardPPCEa.MSG+$F00000
 dc.l BlizzardPPCEa.MSG0+$F00000
 dc.l lbC0007C0+$F00000
BlizzardPPCEa.MSG dc.b 'BlizzardPPCEarlyStartup',0,0
 dc.b 0
BlizzardPPCEa.MSG0 dc.b 'Blizzard PPC Early-Startup',0,0

lbC0007C0 MOVEM.L A0/A1/A5/A6,-(SP)
 BTST #1,($F60038)
 BEQ.B lbC0007D2
 BSR.W lbC000610
lbC0007D2 MOVEM.L (SP)+,A0/A1/A5/A6
 MOVEQ #0,D0
 RTS

 dc.w 0

lbC0007DC NOP
 dc.w 0

lbC0007E0 ILLEGAL
 dc.l lbC0007E0+$F00000
 dc.l lbC00093C+$F00000
 dc.l $1010073
 dc.l BlizzardPPCLa.MSG+$F00000
 dc.l BlizzardPPCSt.MSG+$F00000
 dc.l lbC000828+$F00000
BlizzardPPCLa.MSG dc.b 'BlizzardPPCLauncher',0,0
 dc.b 0
BlizzardPPCSt.MSG dc.b 'Blizzard PPC Startup',0,0
 dc.b 0
 dc.b 0

lbC000828 BRA.W lbC00082C

lbC00082C MOVEM.L A0/A1/A5/A6,-(SP)
 MOVEA.L (4),A6
 LEA (lbC000850,PC),A5
 JSR (-$1E,A6)
 MOVEM.L (SP)+,A0/A1/A5/A6
 MOVE.L D5,-(SP)
 MOVE.W ($DFF01E),D5
 MOVE.L (SP)+,D5
 MOVEQ #0,D0
 RTS

lbC000850 MOVEC VBR,A0
 LEA (lbC000872,PC),A1
 MOVE.L A1,($F4,A0)
 RTE

lbC00085E LEA (lbC00085E,PC),A5
 JSR (-$1E,A6)
 RTS

 MOVEC VBR,A0
 MOVE.L ($F4,A0),D0
 RTE

lbC000872 MOVEM.L D0-D7/A0-A7,-(SP)
 MOVE.L USP,A0
 MOVE.L A0,($3C,SP)
 MOVE.W ($40,SP),D0
 MOVEA.L ($42,SP),A0
 MOVEQ #0,D1
 MOVE.W (A0)+,D1
 MOVE.W D1,D2
 ANDI.W #$F138,D2
 CMP.W #$108,D2
 BEQ.W lbC0008B2
 SUBA.L #2,A0
 ADDA.L #2,A0
 MOVEM.L (SP)+,D0-D7/A0-A6
 LEA (4,SP),SP
 MOVE.L ($10),-(SP)
 RTS

lbC0008B2 MOVE.L D1,D3
 ANDI.W #$E00,D3
 LSR.W #7,D3
 MOVE.L D1,D4
 ANDI.W #7,D4
 LSL.W #2,D4
 MOVEA.L ($20,SP,D4.W),A2
 MOVE.W (A0)+,D5
 LEA (A2,D5.W),A1
 MOVE.W D1,D2
 ANDI.W #$C0,D2
 BEQ.B lbC00091C
 CMP.W #$40,D2
 BEQ.B lbC000904
 CMP.W #$80,D2
 BEQ.B lbC0008F8
 MOVE.L (SP,D3.W),D6
 MOVEQ #3,D7
lbC0008E6 ROL.L #8,D6
 MOVE.B D6,(A1)
 NOP
 LEA (2,A1),A1
 DBRA D7,lbC0008E6
 BRA.W lbC00092E

lbC0008F8 MOVE.W (2,SP,D3.W),D6
 MOVEQ #1,D7
 SWAP D7
 BRA.W lbC0008E6

lbC000904 MOVEQ #3,D7
lbC000906 LSL.L #8,D6
 NOP
 MOVE.B (A1),D6
 LEA (2,A1),A1
 DBRA D7,lbC000906
 MOVE.L D6,(SP,D3.W)
 BRA.W lbC00092E

lbC00091C NOP
 MOVE.B (A1),D6
 LSL.L #8,D6
 LEA (2,A1),A1
 NOP
 MOVE.B (A1),D6
 MOVE.W D6,(2,SP,D3.W)
lbC00092E MOVE.L A0,($42,SP)
 MOVEM.L (SP)+,D0-D7/A0-A6
 LEA (4,SP),SP
 RTE

lbC00093C ILLEGAL
 dc.l lbC00093C+$F00000
 dc.l lbW000B36+$F00000
 dc.l $2010078
 dc.l BlizzardPPCID.MSG+$F00000
 dc.l BlizzardPower.MSG+$F00000
 dc.l lbC000B30+$F00000
 dc.w 0
BlizzardPPCID.MSG dc.b 'BlizzardPPC.IDTag',0,0
 dc.b 0
BlizzardPower.MSG dc.b 'Blizzard PowerPC',$A,$D
 dc.b '(c) phase 5 digital products 1997',$A,$D
 dc.b 'Concept:        Gerald W. Carda, Wolf B. Die'
 dc.b 'trich',$A,$D,$A,$D
 dc.b 'Hardware:       Gerald W. Carda, Christian K'
 dc.b 'eller,Doc L. Zhang',$A,$D,$A,$D
 dc.b 'Software:       KING Ralph (Schmidt), KING F'
 dc.b 'OR ONE DAY Frank (Mariak),',$A,$D
 dc.b '                André Osterhues, Frank Gerbe'
 dc.b 'rding',$A,$D,$A,$D
 dc.b 'Documentation:  Michael Sisti(g)x, Uwe Trebb'
 dc.b 'ien',$A,$D,$A,$D
 dc.b 'Best Boy:       Thomas (Solderhand) Knäbel',$A,$D,$A,$D
 dc.b 'Best Girl:'
 dc.b 9
 dc.b ' Brita (isses schon fertig) Kobuschinski',$A,$D,$A,$D,0
 dc.b 0
 dc.b 0

lbC000B30 NOP
 MOVEQ #0,D0
 RTS

lbW000B36 dc.w 0

lbC000B38 ILLEGAL
 dc.l lbC000B38+$F00000
 dc.l lbL00F558+$F00000
 dc.l $201006A
 dc.l BlizzardPPCSC.MSG+$F00000
 dc.l BlizzardPower.MSG0+$F00000
 dc.l lbC000B94+$F00000
 dc.w 0
BlizzardPPCSC.MSG dc.b 'BlizzardPPCSCSI',0
BlizzardPower.MSG0 dc.b 'Blizzard PowerPC SCSI INIT',0,0
expansionlibr.MSG dc.b 'expansion.library',0,0
 dc.b 0

lbC000B94 MOVEM.L D1-D7/A0-A6,-(SP)
 NOP
 BTST #0,($F60038)
 BEQ.W lbC000C2A
 MOVEA.L (4),A6
 MOVE.L #0,D0
 LEA (expansionlibr.MSG,PC),A1
 JSR (-$228,A6)
 TST.L D0
 BEQ.W lbC000C2A
 MOVEA.L D0,A6
 JSR (-$30,A6)
 TST.L D0
 BEQ.W lbC000C20
 MOVEA.L D0,A0
 LEA (lbL000C38,PC),A1
 MOVE.B #2,(14,A0)
 LEA (lbL000C34,PC),A1
 MOVE.L A1,($20,A0)
 MOVE.L #$20000,($24,A0)
 MOVE.W #2,($2A,A0)
 MOVE.W #$F0,($28,A0)
 MOVEQ #4,D0
 MOVE.W D0,($1A,A0)
 MOVE.B #$FF,($13,A0)
 MOVE.W #$2140,($14,A0)
 MOVE.B #$6E,($11,A0)
 MOVE.L (lbL000018,PC),($16,A0)
 MOVE.B #$D2,($10,A0)
 JSR (-$1E,A6)
 BRA.W lbC000C20

lbC000C20 MOVEA.L A6,A1
 MOVEA.L (4).W,A6
 JSR (-$19E,A6)
lbC000C2A MOVEM.L (SP)+,D1-D7/A0-A6
 MOVEQ #0,D0
 RTS

 dc.w 0
lbL000C34 dc.l 0
lbL000C38
 incbin ram:blizzppc.device.bin
lbL00F558
[#96] Re: Turbo do A3/4000

@Don_Adan, post #72

Dostalem odpowiedz od SpeeGeek-a, czyli wyglada na to, ze to jest do zrobienia.
Teraz trzeba by znalezc chetnego do takiej roboty albo sie spytac autora CT63, czy sam
by tego nie zrobil.

It certainly possible that with some modifications it could be adapted to an A3000/4000.
But it probably involves much more hardware hacking work than software work.

Any differences between the Amiga and Atari bus specs. must be accounted for. (e.g. any bus
signals not available must either be emulated or disabled if that's possible).
The reason for this is Commodore engineers had different ideas for customizing the 030 bus than Atari engineers.
[#97] Re: Turbo do A3/4000

@bogumil, post #92

Troche sie nie zgadza, czyste Z3 ma 1GB od $40000000 do $7FFFFFFF,
u mnie X-Surf-100 lokuje sie pod $40000000, czyli na jego poczatku.
Obszar od $1000000 do $3FFFFFFF jest to obszar co do ktorego Commodore
mialo jakies plany. Jest to obszar w jakim jest widoczny 16MB fast
z plyty A4000 (A3000 pewnie tez), no i pewnie wszystkie karty turbo sie
tam lokuja, a przynajmniej powinny. Jak ktos ma duzo kart na Z3 to
moze posprawdzac na jakich adresach sie one lokuja, i ile pamieci
rezerwuja. Bo w teorii to wszystkie powinny sie miescic w obszarze Z3.
No chyba, ze jakas karta Z3 na sztywno jakis obszar uzywa, to wtedy moga
byc problemy z jej dzialaniem bo moze sie pokrywac z jakims turbo., ale
nie wiem czy sa karty Z3 ktore sztywno pakuja sie pod jakis adres.
Ale o ile pamietam to ktos dla testow wrzucil 5 czy 6 kart ZorRAM 256MB
i jakos to dzialalo choc nie powinno byc wiecej niz 1GB. No chyba ze po
zapelnieniu obszaru 1GB jest uzywany obszar ponizej $40000000.

IFND LIBRARIES_CONFIGREGS_I
LIBRARIES_CONFIGREGS_I SET 1
**
** $Id: configregs.i,v 39.0 91/10/28 16:27:49 mks Exp $
**
** AutoConfig (tm) hardware register and bit definitions
**
** (C) Copyright 1985,1989,1990 Commodore-Amiga, Inc.
**     All Rights Reserved
**

 IFND EXEC_TYPES_I
 INCLUDE "exec/types.i"
 ENDC ;EXEC_TYPES_I

**
** AutoConfig (tm) boards each contain a 32 byte "ExpansionRom" area that is
** read by the system software at configuration time.  Configuration of each
** board starts when the ConfigIn* signal is passed from the previous board
** (or from the system for the first board).  Each board will present it's
** ExpansionRom structure at location $00E80000 to be read by the system.
** This file defines the appearance of the ExpansionRom area.
**
** Expansion boards are actually organized such that only one nybble per
** 16 bit word contains valid information.  The low nybbles of each
** word are combined to fill the structure below. (This table is structured
** as LOGICAL information.  This means that it never corresponds exactly
** with a physical implementation.)
**
** The ExpansionRom space is further split into two regions:  The first 16
** bytes are read-only.  Except for the er_type field, this area is inverted
** by the system software when read in.  The second 16 bytes contain the
** control portion, where all read/write registers are located.
**
** The system builds one "ConfigDev" structure for each board found.  The
** list of boards can be examined using the expansion.library/FindConfigDev
** function.
**
** A special "hacker" Manufacturer ID number is reserved for test use:
** 2011 ($7DB).  When inverted this will look like $F824.
**

 STRUCTURE ExpansionRom,0 ;-First 16 bytes of the expansion ROM
    UBYTE er_Type  ;Board type, size and flags
    UBYTE er_Product ;Product number, assigned by manufacturer
    UBYTE er_Flags ;Flags
    UBYTE er_Reserved03 ;Must be zero ($ff inverted)
    UWORD er_Manufacturer ;Unique ID,ASSIGNED BY COMMODORE-AMIGA!
    ULONG er_SerialNumber ;Available for use by manufacturer
    UWORD er_InitDiagVec ;Offset to optional "DiagArea" structure
    UBYTE er_Reserved0c
    UBYTE er_Reserved0d
    UBYTE er_Reserved0e
    UBYTE er_Reserved0f
    LABEL ExpansionRom_SIZEOF


**
** Note that use of the ec_BaseAddress register is tricky.  The system
** will actually write twice.  First the low order nybble is written
** to the ec_BaseAddress register+2 (D15-D12).  Then the entire byte is
** written to ec_BaseAddress (D15-D8).  This allows writing of a byte-wide
** address to nybble size registers.
**

 STRUCTURE ExpansionControl,0 ;-Second 16 bytes of the expansion ROM
    UBYTE ec_Interrupt ;Optional interrupt control register
    UBYTE ec_Z3_HighBase ;Zorro III   : Bits 24-31 of config address
    UBYTE ec_BaseAddress ;Zorro II/III: Bits 16-23 of config address
    UBYTE ec_Shutup ;The system writes here to shut up a board
    UBYTE ec_Reserved14
    UBYTE ec_Reserved15
    UBYTE ec_Reserved16
    UBYTE ec_Reserved17
    UBYTE ec_Reserved18
    UBYTE ec_Reserved19
    UBYTE ec_Reserved1a
    UBYTE ec_Reserved1b
    UBYTE ec_Reserved1c
    UBYTE ec_Reserved1d
    UBYTE ec_Reserved1e
    UBYTE ec_Reserved1f
    LABEL ExpansionControl_SIZEOF

**
** many of the constants below consist of a triplet of equivalent
** definitions: xxMASK is a bit mask of those bits that matter.
** xxBIT is the starting bit number of the field.  xxSIZE is the
** number of bits that make up the definition. This method is
** used when the field is larger than one bit.
**
** If the field is only one bit wide then the xxB_xx and xxF_xx convention
** is used (xxB_xx is the bit number, and xxF_xx is mask of the bit).
**

** manifest constants **
E_SLOTSIZE  EQU $10000
E_SLOTMASK  EQU $ffff
E_SLOTSHIFT  EQU 16


** these define the free regions of Zorro memory space.
** THESE MAY WELL CHANGE FOR FUTURE PRODUCTS!
E_EXPANSIONBASE  EQU $00e80000 ;Zorro II  config address
EZ3_EXPANSIONBASE EQU $ff000000 ;Zorro III config address

E_EXPANSIONSIZE  EQU $00080000 ;Zorro II  I/O type cards
E_EXPANSIONSLOTS EQU 8

E_MEMORYBASE  EQU $00200000 ;Zorro II  8MB space
E_MEMORYSIZE  EQU $00800000
E_MEMORYSLOTS  EQU 128

EZ3_CONFIGAREA  EQU $40000000 ;Zorro III space
EZ3_CONFIGAREAEND EQU $7FFFFFFF ;Zorro III space
EZ3_SIZEGRANULARITY EQU $00080000 ;512K increments


***** er_Type definitions (ttldcmmm) ****************************************

** er_Type board type bits -- the OS ignores "old style" boards **
ERT_TYPEMASK  EQU $c0 ;Bits 7-6
ERT_TYPEBIT  EQU 6
ERT_TYPESIZE  EQU 2
ERT_NEWBOARD  EQU $c0
ERT_ZORROII  EQU ERT_NEWBOARD
ERT_ZORROIII  EQU $80

** other bits defined in er_Type **
 BITDEF ERT,MEMLIST,5  ; Link RAM into free memory list
 BITDEF ERT,DIAGVALID,4  ; ROM vector is valid
 BITDEF ERT,CHAINEDCONFIG,3 ; Next config is part of the same card

** er_Type field memory size bits **
ERT_MEMMASK  EQU $07 ;Bits 2-0
ERT_MEMBIT  EQU 0
ERT_MEMSIZE  EQU 3



***** er_Flags byte -- for those things that didn't fit into the type byte ****
***** the hardware stores this byte in inverted form      ****
 BITDEF ERF,MEMSPACE,7  ; Wants to be in 8 meg space.
     ; (NOT IMPLEMENTED)

 BITDEF ERF,NOSHUTUP,6  ; Board can't be shut up.

 BITDEF ERF,EXTENDED,5  ; Zorro III: Use extended size table
     ;      for bits 0-2 of er_Type.
     ; Zorro II : Must be 0

 BITDEF ERF,ZORRO_III,4  ; Zorro III: must be 1
     ; Zorro II : must be 0

ERT_Z3_SSMASK  EQU $0F ; Bits 3-0.  Zorro III Sub-Size.  How
ERT_Z3_SSBIT  EQU 0 ; much space the card actually uses
ERT_Z3_SSSIZE  EQU 4 ; (regardless of config granularity)
     ; Zorro II : must be 0


** ec_Interrupt register (unused) *********************************************
 BITDEF ECI,INTENA,1
 BITDEF ECI,RESET,3
 BITDEF ECI,INT2PEND,4
 BITDEF ECI,INT6PEND,5
 BITDEF ECI,INT7PEND,6
 BITDEF ECI,INTERRUPTING,7


**************************************************************************
**
** these are the specifications for the diagnostic area.  If the Diagnostic
** Address Valid bit is set in the Board Type byte (the first byte in
** expansion space) then the Diag Init vector contains a valid offset.
**
** The Diag Init vector is actually a word offset from the base of the
** board.  The resulting address points to the base of the DiagArea
** structure.  The structure may be physically implemented either four,
** eight, or sixteen bits wide.  The code will be copied out into
** ram first before being called.
**
** The da_Size field, and both code offsets (da_DiagPoint and da_BootPoint)
** are offsets from the diag area AFTER it has been copied into ram, and
** "de-nybbleized" (if needed). (In other words, the byte size is the size of
** the actual information, not how much address space is required to
** store it.)
**
** All bits are encoded with uninverted logic (e.g. 5 volts on the bus
** is a logic one).
**
** If your board is to make use of the boot facility then it must leave
** its config area available even after it has been configured.  Your
** boot vector will be called AFTER your board's final address has been
** set.
**
**************************************************************************

 STRUCTURE DiagArea,0
    UBYTE da_Config ; see below for definitions
    UBYTE da_Flags ; see below for definitions
    UWORD da_Size  ; the size (in bytes) of the total diag area
    UWORD da_DiagPoint ; where to start for diagnostics, or zero
    UWORD da_BootPoint ; where to start for booting
    UWORD da_Name  ; offset in diag area where a string
    ;   identifier can be found (or zero if no
    ;   identifier is present).

    UWORD da_Reserved01 ; two words of reserved data.  must be zero.
    UWORD da_Reserved02
    LABEL DiagArea_SIZEOF

; da_Config definitions
**
** DAC_BYTEWIDE can be simulated using DAC_NIBBLEWIDE.
**
DAC_BUSWIDTH EQU $C0 ; two bits for bus width
DAC_NIBBLEWIDE EQU $00 ; (indicates information is nybble wide)
DAC_BYTEWIDE EQU $40 ; BUG: Will not work under V34 Kickstart!
DAC_WORDWIDE EQU $80

DAC_BOOTTIME EQU $30 ; two bits for when to boot
DAC_NEVER EQU $00 ; obvious
DAC_CONFIGTIME EQU $10 ; call da_BootPoint when first configing
    ;   the device
DAC_BINDTIME EQU $20 ; run when binding drivers to boards

**
** These are the calling conventions for the diagnostic callback
** (from da_DiagPoint).
**
** A7 -- points to at least 2K of stack
** A6 -- ExecBase
** A5 -- ExpansionBase
** A3 -- your board's ConfigDev structure
** A2 -- Base of diag/init area that was copied
** A0 -- Base of your board
**
** Your board must return a value in D0.  If this value is NULL, then
** the diag/init area that was copied in will be returned to the free
** memory pool.
**

 ENDC ;LIBRARIES_CONFIGREGS_I
[#98] Re: Turbo do A3/4000

@glichtanski, post #82

Może chodzi im głównie o NIP. Wtedy wystarczy ktokolwiek z działalnością gospodarczą...
[#99] Re: Turbo do A3/4000

@Rafał A-3000, post #98

Poinformowałem ich, że mam NIP ale odpowiedzieli że i tak sprzedają tylko firmom. Tymczasem dostałem info z tencell. Przy zamówieniu 150 szt. 15.80 USD za sztukę !
[#100] Re: Turbo do A3/4000

@glichtanski, post #99

A jakie warunki musi ta firma spełniać, by jej sprzedali?

Musi to być firma produkcyjna, projektowa, czy wystarczy z dziedziny IT?
[#101] Re: Turbo do A3/4000

@jarob, post #100

Taką odpowiedź dostałem:
Sorry we only can sell to company, not to private person.

Maybe you now a company that can buy by us.
[#102] Re: Turbo do A3/4000

@glichtanski, post #101

Napisz im delikatnie by Ci makaronau na oczy nie rzucali całymi tonami i mozesz jako company zaraz zgłosić podobne działania do rzecznika praw konsumenta i zrobić im darmową reklamę. Nie zapomnij dodać, że możesz wielu company na świecie doradzić by nie robili interesów z takimi lamusami jak oni. To wersja delikatna
[#103] Re: Turbo do A3/4000

@jarob, post #100

Zapewne wystarczył by im VAT EU.
[#104] Re: Turbo do A3/4000

@Don_Adan, post #97

Tak swoją drogą, czy w KS3.1 doszedł jakiś nowy mechanizm wykrywania pamięci? Zaciekawiła mnie pewna właściwość kart ACA dla A1200, gdzie Jens pisze, że pamięć jest dodawana przez system automatycznie przy kickstarcie 3.1 i wyższymy, a poniżej trzeba użyć ACATune.
[#105] Re: Turbo do A3/4000

@sanjyuubi, post #104

Coś się na pewno zmieniło, bo jeżeli miało się w A1200 słoty zorro, w których była wpięta np. CV/3D i Apollo 1240, to przy kicku 3.0 wszystko działało jak trzeba. Natomiast po zmianie na kick3.1 nie było widać pamięci fast z apolla. Rozwiązaniem było wpięcie się apollem w pętlę autoconfigu slotów zorro.

Ostatnia aktualizacja: 06.09.2014 15:40:42 przez jarob
[#106] Re: Turbo do A3/4000

@bogumil, post #81

Przestudiowałem schemat turbo 68060 dla GBA1000 i zdecydowanie wszystkie linie adresowe (A0-A31) są podpięte. Konkretnie 32 linie adresowe z podstawki 68030 idą poprzez dwa transceivery 74ALVT16543 bezpośrednio do odpowiednich linii adresowych 68060.
A sam GBA1000 rzeczywiście ma 7 najstarszych linii adresowych nie podpiętych - linię A24 (czyli nr 25) używa do obsługi pamięci Fast w 32 bitowej przestrzeni pomiędzy $1200000 a $19FFFFF.
Czyli spokojnie można z turbo 68060 dla GBA1000 eksperymentować. Problemy może co najwyżej sprawić konfiguracja pamięci, można więc na początek spróbować z A3630 - tam nie ma pamięci.
[#107] Re: Turbo do A3/4000

@sanjyuubi, post #104

Tu masz liste zmian pomiedzy expansion.library w wersji 3.0 i 3.1.

*************************************************************************
* *
* Copyright (C) 1985-1991 Commodore Amiga Inc. All rights reserved. *
* *
*************************************************************************

*************************************************************************
*
* $Id: config.asm,v 39.8 93/02/09 13:54:38 mks Exp Locker: mks $
*
* $Log: config.asm,v $
* Revision 39.8 93/02/09 13:54:38 mks
* Fixed CPU and motherboard RAM test code to work
* with more that 128Meg and to work with mirroring
* and to work as documented (Bad Bryce!!!!)
*
* Revision 39.7 92/11/17 16:31:59 mks
* Added the code needed for A1200 32-bit CPU memory addon...
*
* Revision 39.6 92/06/07 12:23:05 mks
* Moved the FreeVec() back up... (Where is should be...)
*
* Revision 39.5 92/06/06 20:56:59 mks
* Minor changes to the ReKick code... In hopes of fixing the problem
* with Graphics...
*
* Revision 39.4 92/06/06 18:38:43 mks
* Added the ReKick conditional assembly code and removed the KickIt code
*
* Revision 39.3 92/04/28 13:08:25 mks
* Fixed silly typo in the hardware remapping ram sizing code
*
* Revision 39.2 92/04/27 09:54:47 mks
* Added code to notice ROM remapping with hardware...
*
* Revision 39.1 92/03/12 11:22:55 mks
* Fixed branches that could be short to save ROM space
*
* Revision 39.0 91/10/28 16:25:28 mks
* First release of native build V39 expansion code
*
*************************************************************************
[#108] Re: Turbo do A3/4000

@Don_Adan, post #107

A skąd jest ten log, bo nie mogę go googlem znaleźć? Chciałem zobaczyć co tam jest w tym pliku/przykładzie config.asm...


Ostatnia aktualizacja: 06.09.2014 21:47:53 przez strim_
[#109] Re: Turbo do A3/4000

@Don_Adan, post #107

* Revision 39.7 92/11/17 16:31:59 mks
* Added the code needed for A1200 32-bit CPU memory addon...

Ciekawe, czy to ta własnie zmiana powoduje automatyczne wykrycie pamięci w kartach ACA. Pytanie brzmi, czy wystarczy, aby pod danym adresem była jakaś pamięć i zostanie wykryta automatycznie tak jak pamięć SLOW?
[#110] Re: Turbo do A3/4000

@wali7, post #106

No bo te linie nie muszą wszystkie być podpięte pod płytę, jeżeli sama płyta z nich nie korzysta. Nawet, gdyby nie były podpięte, to można na nowym schemacie je samemu podpiąć.

Najważniejsze pytanie, czy ta karta obsługuje DMA?
[#111] Re: Turbo do A3/4000

@sanjyuubi, post #109

Ciekawe, czy to ta własnie zmiana powoduje automatyczne wykrycie pamięci w kartach ACA.


Prawdopodobnie tak. Pamiętam, że kiedyś coś tam reasemblowałem co dotyczyło wykrywania pamięci i wyszło na to, że ROM 3.0 dla A1200 w ogóle nie miał opcji dodawania pamięci powyżej obszaru Zorro II. Czyli wszystkie karty turbo z 32-bitową szyną adresową żeby działać pod ROMem 3.0 musiały mieć swój boot ROM, który wykonywał dodanie pamięci programowo (no i tak robią np. Blizzardy jak wspomnieliśmy wcześniej).

Pytanie brzmi, czy wystarczy, aby pod danym adresem była jakaś pamięć i zostanie wykryta automatycznie tak jak pamięć SLOW?


Tego nie sprawdzałem nigdy szczerze mówiąc...
[#112] Re: Turbo do A3/4000

@strim_, post #111

Czy to znaczy, że nie można dodać pamięci w ZorroIII przez autoconfig pod ks3.0?
[#113] Re: Turbo do A3/4000

@sanjyuubi, post #112

Można na dużych Amigach. Ten problem dotyczy tylko A1200.
[#114] Re: Turbo do A3/4000

@sanjyuubi, post #109

Na pewno nie, sprawdzanie obszaru 1GB czy pod jakim adresem jest pamiec i ile MB ona zajmuje, zajeloby tyle czasu przy pierwszym boocie Amigi, ze by tylko wkurzalo uzytkownikow. Co innego gdyby Commodore wyznaczyl jakis staly start adres dla 32 bitowej pamieci, to wtedy mialoby to jakis sens.
[#115] Re: Turbo do A3/4000

@strim_, post #108

Jak chcesz ten plik na wlasny uzytek to pisz na email donadan@wp.pl
[#116] Re: Turbo do A3/4000

@wali7, post #106

Ja tam mysle, ze uzywajac logiki z tej karty da sie uzyskac slawny wsad do Machow 130/131 dla kart Apollo albo dla ich odpowiednika.
[#117] Re: Turbo do A3/4000

@Don_Adan, post #115

Jak chcesz ten plik na wlasny uzytek to pisz na email donadan@wp.pl


Napisałem.
[#118] Re: Turbo do A3/4000

@Don_Adan, post #116

Tylko skąd Georg Braun miałby dostać ten wsad? Zdaje się, że ma go Jens.
Zresztą logika w Apollu 1240 jest przystosowana do szyny ZII, karta 68060 dla GBA jest wsadzana bezpośrednio w slot 68030.
Co do osiągów, to Georg Braun pokazuje całkiem sympatyczne wyniki transferów do pamięci pod tą kartą. Procek zdaje się ma na 100 MHz.


Ostatnia aktualizacja: 07.09.2014 14:22:34 przez wali7
[#119] Re: Turbo do A3/4000

@strim_, post #113

A właściwie z czym to jest związane, z niewykrywaniem z slotów zorro przez ks3.0? Czy A500 i A600 też to dotyczy :) ?
[#120] Re: Turbo do A3/4000

@Don_Adan, post #72

Falcon nigdy nie miał procesor-a 030 25mhz.
Tylko 030 16mhz.

Ct63 zrobiono około 200szt, samych ct6x powstało około 500-600szt.
Obecnie ta karta jest nie dokupienia.
Raz na rok pojawia się na ebay i znika za 1000 ojro czy 1200 ojro w pół dnia.


Niestety my Atarowce jesteśmy dziwne człowieki.
Skoro czuba nie chce produkować, sami se wyprodukujemy..!
A elektroników mamy zdolnych więc dzieje się :)

Największym problem są procki rev.6 (200usd na ebay dostępne często od ręki).
A procek rev.6 nie muszę chyba pisać że działa nim. na 95mhz. Starsze rev. 060 kosztują średnio 1/3 ceny rev.6. Ale jak się bawić to się bawić.

Jak Willy ogarnie ct63 to może weźmie się za blizarda 060 (porozmawiajcie z nim!), tylko trzeba by go poprawić na karcie blizard parę spraw...poprawić...
- bo podkręcanie za pomocą kwarców to naprawdę rozwiązanie iście retro :) oraz zamiast pamięci simm, zrobić tam dimm, albo najprościej zintegrować pamięć z płytą.

Ostatnia aktualizacja: 08.09.2014 20:08:31 przez as...
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem