@Don_Adan, post #329
@MarX, post #331
@MarX, post #331
@asman, post #333
jeszcze kilka pytań, żebym dobrze zrozumiał. Załóżmy że uruchamiasz na A500+ z ADF z kick1.3. I jak rozumiem dochodzisz do "TESTING SPEED". Czy progres bar widzisz ? Dochodzi on do końca ?
Bo następnego ekranu czyli SLOW AMIGA nie widzisz ?
Ekspertem od sprzetu nie jestem.
Ale jest jednak roznica czy masz A500+ z rozszerzeniem do 1.5MB chip.
Czy to jest A500, zmodowana do 1.5MB chip.
Bo cos takiego nie istnieje oryginalnie w przyrodzie.
A co do netu, to chodzilo mi o A1200.
@MarX, post #336
@Don_Adan, post #339
MeasureSpeed2: clr.b .lastTod ;kasowanie ostatnio zapisanej wertości TOD dla progresu ;ładujemy kod renderera lea FileTempBuf,a0 ;adres docelowy pliku (bufor dla danych skompresowanych) lea renderName,a1 ;nazwa pliku rendera lea Render,a2 ;adres docelowy danych (cel dekompresji) move.l #FILE_TEMP_BUF_LEN,d0 bsr LoadFile lea testingTxt,a0 ;komunikat o testowaniu prędkości moveq #0,d0 bsr ShowTextScreen move.w #$7fff,d2 ;clear all bits move.w d2,$9a(a6) ;INTENA, move.w d2,$9c(a6) ;and INTREQ move.w d2,$9c(a6) ;twice for A4000 compatibility move.l #$ffffffff,d0 lea BgScrnBP0+4480+12,a3 ;adres bitplanu do rysowania zakresu progresu lea BgScrnBP0+4680+12,a4 ;adres bitplanu do rysowania zakresu progresu ;kreski move.l d0,(a3)+ move.l d0,(a3)+ move.l d0,(a3)+ move.l d0,(a3)+ move.l d0,(a4)+ move.l d0,(a4)+ move.l d0,(a4)+ move.l d0,(a4)+ clr.w d1 lea BgScrnBP0+4560+12,a3 ;adres bitplanu do rysowania progresu lea BgScrnBP0+4600+12,a4 ;adres bitplanu do rysowania progresu move.b #$ff,(a3,d1.w) move.b #$ff,(a4,d1.w) moveq #0,d5 move.l #$fffffffe,CopperScalingBegin ;ustawiamy koniec copperlisty ;ustawiamy wskaźniki 3 ostatnich bitplanów żeby nie było widać śmieci bsr InitBackground move.w #$09f,TilePalette+6 ;zmieniamy 1szy kolor palety kafli żeby tekst wyświetlił się na niebiesko move.w #$00B,TilePalette+10 ;oraz kolor 2 czyli obramowania bsr WaitEndRaster ;czekamy na koniec rastra move.l #Copper,$80(a6) ;copper lista (gry) dla testu szybkości lea CIAA,a5 ;lea CIAB,a5 bclr.b #7,CIACRB(a5) ;ustawienie tryb zapisu do TOD zamista alarmu clr.b CIATODMID(A5) CLR.B CIATODLO(A5) .measureStart: lea Tex1Buf,a0 ;**** rysowanie - pierwszy bitplan (adres źródła) moveq #0,d3 move.l DrawBuffer,a1 ;A1 - adres celu (bitplany są skalowane ale fizycznie zajmują cały rozmiar) bsr Render ;wywołanie rysowania lea Tex2Buf,a0 ;**** rysowanie - drugi bitplan (adres źródła) move.l DrawBuffer,a1 ;A1 - adres celu add.l #bpsize,a1 ;przesuwamy wskaźnik na następny bitplan + pozycje na ekranie bsr Render ;wywołanie rysowania lea Tex3Buf,a0 ;**** rysowanie - trzeci bitplan (adres źródła) move.l DrawBuffer,a1 ;A1 - adres celu add.l #bpsize*2,a1 ;przesunięcie na 3 bitplan + ustawienie pozycji tunelu na ekranie bsr Render ;wywołanie rysowania addq #1,d5 move.b CIATODMID(a5),d0 clr.l d1 move.b CIATODLO(a5),d1 lsr.b #4,d1 cmp.b .lastTod,d1 beq .noProgress move.b d1,.lastTod move.b #$ff,(a3,d1.w) move.b #$ff,(a4,d1.w) .noProgress: cmp.b #$01,d0 ;CIATODMID(a5) bne .measureStart ;------------------------------------------ ifd DEBUG clr.l d1 move.l d5,d0 bsr PrintLongValue move.w #160,d0 bsr Sleep endc cmp.w #$96,d5 bcc .hiSpd cmp.w #$64,d5 ;czy A500/A600 FAST RAM bcs .lowSpeed move.b #$03,A500Mode ;ustawiamy bit 0 i 1 bra .speedSet .lowSpeed: move.b #$01,A500Mode bra .speedSet .hiSpd: clr.b A500Mode .speedSet: bsr WaitEndRaster move.l #CopperSimple,$80(a6) ;copper lista dla ekranu tekstowego bsr CleanRegisters ;ustawiamy wszystkie (poza A6) rejestry na 0 rts .lastTod: dc.b 0 ;zawiera ostatnio odczytaną wartość 4 najstarszych bitów CIATODLO z licznika TOD ;--------------------------------------------------
@Zbych, post #340
move.b CIATODMID(a5),d0 clr.l d1
move.b CIATODHI(a5),d0 ;latch activated (tego i tak nie potrzebujesz więc idzie do d0) move.b CIATODMID(a5),d0 clr.l d1 move.b CIATODLO(a5),d1 ;latch deactivated
@asman, post #343
@Zbych, post #340
.noProgress: cmp.b #$01,d0 ;CIATODMID(a5) bne .measureStart
@Don_Adan, post #345
Nie wiem dlaczego tak to robisz, lepszy jakis zwykly licznik raczej bylby.
@Zbych, post #346
@MarX, post #348
@MarX, post #349
MeasureSpeed2: clr.b .lastTod ;kasowanie ostatnio zapisanej wertości TOD dla progresu ;ładujemy kod renderera lea FileTempBuf,a0 ;adres docelowy pliku (bufor dla danych skompresowanych) lea renderName,a1 ;nazwa pliku rendera lea Render,a2 ;adres docelowy danych (cel dekompresji) move.l #FILE_TEMP_BUF_LEN,d0 bsr LoadFile lea testingTxt,a0 ;komunikat o testowaniu prędkości moveq #0,d0 bsr ShowTextScreen move.w #$7fff,d2 ;clear all bits move.w d2,$9a(a6) ;INTENA, move.w d2,$9c(a6) ;and INTREQ move.w d2,$9c(a6) ;twice for A4000 compatibility move.l #$ffffffff,d0 lea BgScrnBP0+4480+12,a3 ;adres bitplanu do rysowania zakresu progresu lea BgScrnBP0+4680+12,a4 ;adres bitplanu do rysowania zakresu progresu ;kreski move.l d0,(a3)+ move.l d0,(a3)+ move.l d0,(a3)+ move.l d0,(a3)+ move.l d0,(a4)+ move.l d0,(a4)+ move.l d0,(a4)+ move.l d0,(a4)+ clr.w d1 lea BgScrnBP0+4560+12,a3 ;adres bitplanu do rysowania progresu lea BgScrnBP0+4600+12,a4 ;adres bitplanu do rysowania progresu move.b #$ff,(a3,d1.w) move.b #$ff,(a4,d1.w) moveq #0,d5 move.l #$fffffffe,CopperScalingBegin ;ustawiamy koniec copperlisty ;ustawiamy wskaźniki 3 ostatnich bitplanów żeby nie było widać śmieci bsr InitBackground move.w #$09f,TilePalette+6 ;zmieniamy 1szy kolor palety kafli żeby tekst wyświetlił się na niebiesko move.w #$00B,TilePalette+10 ;oraz kolor 2 czyli obramowania bsr WaitEndRaster ;czekamy na koniec rastra move.l #Copper,$80(a6) ;copper lista (gry) dla testu szybkości lea CIAA,a5 ;lea CIAB,a5 bclr.b #7,CIACRB(a5) ;ustawienie tryb zapisu do TOD zamista alarmu clr.b CIATODMID(A5) CLR.B CIATODLO(A5) move.w #1000,D2 ; moze byc mniejsza wartosc jak za duza .measureStart: lea Tex1Buf,a0 ;**** rysowanie - pierwszy bitplan (adres źródła) moveq #0,d3 move.l DrawBuffer,a1 ;A1 - adres celu (bitplany są skalowane ale fizycznie zajmują cały rozmiar) bsr Render ;wywołanie rysowania lea Tex2Buf,a0 ;**** rysowanie - drugi bitplan (adres źródła) move.l DrawBuffer,a1 ;A1 - adres celu add.l #bpsize,a1 ;przesuwamy wskaźnik na następny bitplan + pozycje na ekranie bsr Render ;wywołanie rysowania lea Tex3Buf,a0 ;**** rysowanie - trzeci bitplan (adres źródła) move.l DrawBuffer,a1 ;A1 - adres celu add.l #bpsize*2,a1 ;przesunięcie na 3 bitplan + ustawienie pozycji tunelu na ekranie bsr Render ;wywołanie rysowania addq #1,d5 move.b CIATODMID(a5),d0 clr.l d1 move.b CIATODLO(a5),d1 lsr.b #4,d1 cmp.b .lastTod,d1 beq .noProgress move.b d1,.lastTod move.b #$ff,(a3,d1.w) move.b #$ff,(a4,d1.w) .noProgress: subq.w #1,D2 beq.b .lowSpeed cmp.b #$01,d0 ;CIATODMID(a5) bne .measureStart ;------------------------------------------ ifd DEBUG clr.l d1 move.l d5,d0 bsr PrintLongValue move.w #160,d0 bsr Sleep endc cmp.w #$96,d5 bcc .hiSpd cmp.w #$64,d5 ;czy A500/A600 FAST RAM bcs .lowSpeed move.b #$03,A500Mode ;ustawiamy bit 0 i 1 bra .speedSet .lowSpeed: move.b #$01,A500Mode bra .speedSet .hiSpd: clr.b A500Mode .speedSet: bsr WaitEndRaster move.l #CopperSimple,$80(a6) ;copper lista dla ekranu tekstowego bsr CleanRegisters ;ustawiamy wszystkie (poza A6) rejestry na 0 rts .lastTod: dc.b 0 ;zawiera ostatnio odczytaną wartość 4 najstarszych bitów CIATODLO z licznika TOD ;--------------------------------------------------
@Don_Adan, post #350
@nekroskop, post #354
@Don_Adan, post #355
Albo MarX ma lub mial (czytaj podlaczal) do obu tych Amig jakies ustrojstwo, ktore uszkadza uklady CIA
@MarX, post #356
@MarX, post #356
@Zbych, post #358