@Don_Adan, post #304
Jakbym mial strzelac to ACK interrupt problem dla mnie.
move.l (osInt),-(sp) ;WYWOŁUJEMY ORYGINALNĄ PROCEDURĘ PRZERWAŃ PRZEZ WRZUCENIE NA STOS JEJ ADRESU I WYKONANIE RTS rts
move.l 4.w,a6 ;Exec library base address in a6 sub.l a4,a4 btst #0,297(a6) ;68000 CPU? beq.s .yes68k lea .GetVBR(PC),a5 ;else fetch vector base address to a4: jsr -30(a6) ;enter Supervisor mode *--- save view+coppers ---* .yes68k: lea .GfxLib(PC),a1 ;either way return to here and open jsr OldOpenLibrary(a6) ;graphics library tst.l d0 ;if not OK, beq .quit ;exit program. move.l d0,a5 ;a5=gfxbase move.l a5,a6 move.l 34(a6),-(sp) sub.l a1,a1 ;blank screen to trigger screen switch jsr -222(a6) ;on Amigas with graphics cards *--- save int+dma ---* lea $dff000,a6 bsr.w WaitEOF ;wait out the current frame move.l $1c(a6),-(sp) ;save intena+intreq move.w 2(a6),-(sp) ;and dma move.l $6c(a4),-(sp) ;and also the VB int vector for sport. move.w $1c(a6),osIntena ;save intena+intreq move.w 2(a6),osDmacon ;and dma move.l $6c(a4),osInt ;and also the VB int vector for sport. ....
@Zbych, post #300
@Phibrizzo, post #307
Czy kontrolujesz moze czy aby rejestr VBR nie jest zerowy?
move.w #%1000011111110000,$96(a6) ;włączenie kanałów DMA move.w #%1101000000101000,$9a(a6) ;włączenie portów i VBint
@Zbych, post #305
@Zbych, post #308
APTR GetVBR(void) { APTR vbr = NULL; // sprytny kawalek kodu w asmie // movec.l VBR, D0 // RTE static UWORD getvbr[] = { 0x4e7a, 0x0801, 0x4e73}; SysBase = *(struct ExecBase**)4; if(((*(struct ExecBase**)4)->AttnFlags) & AFF_68010) { vbr = (APTR)(Supervisor((void*)getvbr)); } return vbr; }
@Zbych, post #308
@Phibrizzo, post #312
Mysle ze robiac wersje pod te konkretne platformy nie jest to konieczne. Szkoda czasu na dekompresje.
@Zbych, post #305
@tukinem, post #314
...czemu służy odłożenie przerwań i copperlisty systemowej jak dobrze rozumuję
@Zbych, post #318
@Zbych, post #322
@Don_Adan, post #324
@Don_Adan, post #324
@Don_Adan, post #324
Nie wiem czy przewidziales taka bardzo rzadko spotykana konfiguracje jak A500+ z 1,5MB chip RAM.
Ja sam nie wiedziałem, ze taki konfig istnieje. Jest watek na PPA o takim konfigu.
@Zbych, post #325
akurat 1.5 chip i A500+ nie testowałem wcześniej ale teraz sprawdziłem na emu i taka konfiguracja działa normalnie
@MarX, post #327