Anonymous




Register
Login

Amiga Future

Community

Knowledge

Service

Search




Advanced search

Unanswered topics
Active topics

Last Magazine

The Amiga Future 141 was released on the November 5th.

The Amiga Future 141 was released on the November 5th.
The Amiga Future 141 was released on the November 5th.

The Amiga Future 141 was released on the November 5th.
More informations

Social Media

Twitter Amigafuture Facebook Amigafuture RSS-Feed [german] Amigafuture RSS-Feed [english] Instagram YouTube

Advertisement

Partnerlinks

Probleme mit der Copperliste

Alles über programmieren am Amiga, Pegasos, Aros...

Moderator: AndreasM

Post Reply
AundR
Newbie
Newbie
Posts: 7
Joined: 22.12.2016 - 23:22

Probleme mit der Copperliste

Post by AundR » 04.01.2017 - 01:10

Moin Moin,
ich habe ein Problem mit dem wiederherstellen der alten Copperliste. Alles funzt soweit nur wenn ich versuche die alte Copperliste wieder zu aktivieren geht was schief und ich komme nicht mehr sauber aus dem PRG raus.

Anbei mal der Assembler Code. Ist mit dem SEKA3.2
gemacht.

Wäre cool wenn mir jemand sagt was ich falsch mache.
Schon mal thanx


init:

execbase = 4
openlibary = -552
ciaapra = $BFE001
coplist1 = $DFF080
forbid = -132
permit = -138
color00 = $DFF180
farbe1 = $0000

run:
move.l execbase,a6 ; System AUS
jsr forbid(a6)
clr.l d0
lea gfxname,a1
jsr openlibary(a6)
move.l d0,gfxbase
; move.l #MeinCopper,coplist1 ; Adresse der neuen Copperliste

Waitmouse:
move.w farbe1,$DFF180

add #$1,farbe1
move farbe1,d4

btst #6,$BFE001
bne Waitmouse

System_AN:

move.l gfxbase,a0 ;System AN
clr.l d0
jsr openlibary(a6)
move.l d0,a4
; move.l 38(a0),coplist1
jsr permit(a6)
clr.l d0
rts

gfxname:dc.b "graphics.libary",0
even
gfxbase:dc.l 0

MeinCopper:
dc.w color00,$0000
dc.w $8001,$fffe
dc.w color00,$0700
dc.w $a00f,$fffe
dc.w color00,$0000
copperliste_ende:
dc.w $ffff,$fffe

Thomas
Amiga Future Redaktion
Amiga Future Redaktion
Posts: 968
Joined: 03.07.2001 - 01:00
Contact:

Post by Thomas » 04.01.2017 - 23:12

Da solltest du nochmal in Ruhe drüberschauen und dir überlegen, was jede einzelne Stelle tut.

Beispiel: zweimal OpenLibrary aber kein CloseLibrary

Ansonsten gibt es dort ein funktionierendes Beispiel: http://eab.abime.net/showpost.php?p=711170&postcount=5

_StingRay_
Grade reingestolpert
Grade reingestolpert
Posts: 1
Joined: 22.10.2017 - 08:58

Post by _StingRay_ » 22.10.2017 - 09:06

Der Code enthält etliche Fehler und kann so nicht funktionieren!


1.Die graphics.library wird nie geöffnet, da der Name nicht
korrekt geschrieben wurde (es fehlt ein "r" bei library)!
gfxname:dc.b "graphics.libary",0

2. move.l gfxbase,a0 ;System AN
clr.l d0
jsr openlibary(a6)

Kann und wird auch nicht funktionieren! gfxbase wird zum einen NULL sein (siehe 1) und es macht absolut keinen Sinn, openlibrary hier aufzurufen, zudem die Parameter komplett falsch sind!

3. move.l d0,a4
; move.l 38(a0),coplist1

Selbst wenn der Code bei 2. korrekt wäre, würde hier auch nicht die Copperlist des Systems wiederhergestellt werden. GfxBase in a4, eine Zeile später wird GfxBase in a0 vorausgesetzt.


Fazit: Dieser einfache Code enthält soviele gravierende Fehler, dass Du Dir erstmal Grundlagen aneignen solltest, bevor Du wild drauflos codest. Ausserdem solltest Du in der Lage sein, einen Debugger zu bedienen, denn damit kannst Du solche Fehler selbst lokalisieren und beheben.

AundR
Newbie
Newbie
Posts: 7
Joined: 22.12.2016 - 23:22

Post by AundR » 22.10.2017 - 10:32

Cool, danke. Bin schon drauf gekommen. Hab früher mal viel gecoded. Muss langsam wieder rein kommen. Leider sehr viel vergessen :-(

Post Reply