DMA Problem
-
Hi,
ich habe volgenden Code um dem Controler zu deaktivieren aber es funzt net
; ; Deaktviert den DMA Controler ; ;--------------------------------- ; Input: ; ch = DMA Kanal ;--------------------------------- dma_deak: push ax push cx mov al, 00010100b cmp ch, 0x01 je .Master cmp ch, 0x02 je .Slave .Master: out 0xD0, al jmp dma_deak_done .Slave: out 0x08, al dma_deak_done: pop cx pop ax ; zurück ret
weiß einer worans liegt?
( Bochs sagt der Wert muss 0x00 sein dem ich diesem Register übergeben muss)
MFG
LordHoto
-
Hi.
Dann versuchs doch einfach mal mit der 0.
Wenn das Ding aus soll, ist es doch letztendlich egal, auf welche Werte der Kram gesetzt wird, solange das enabled-bit 0 ist.
-
das Problem ist das es wenn er deaktiviert sein soll auf 1 gesetzt werden muss!
und das andere aktivierte Bit ist standardMFG
CrazyLinux
-
CrazyLinux schrieb:
das Problem ist das es wenn er deaktiviert sein soll auf 1 gesetzt werden muss!
Ups, hast recht!
CrazyLinux schrieb:
und das andere aktivierte Bit ist standard
Da kannst du es aber trotzdem killen, wenn der DMA-Controller aus kommt. :p
BTW: Ich habe jeweils Bochs1.4 und 2.0.2 mit
mov dx,0008h mov al,04h out dx,al mov dx,00D0h out dx,al
und
mov dx,0008h mov al,14h out dx,al mov dx,00D0h out dx,al
gefuettert und er hat's jedesmal anstandslos gefressen.
-
ist dann aber die frage, ob das auch DMACs auf anderen computern mitmachen, bei den billigdingern (damit meine ich die DMACs) heutzutage weiß man nie... lieber immer nach dem standard gehen und wenn es bei einem selbst nicht klappt, dann hat man halt selber son sch****-teil, das nicht richtig funktioniert...