@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