68010 bevorzugen? (A500)

  • 68010 bevorzugen? (A500)

    Ich habe zwei 68010 CPUs geschenkt bekommen. Habe extra meinem Amiga 500 geöffnet und ihn installiert. Ich merke natürlich keinen Unterschied ausser das ich bei Whdload (wovon eh nicht viel läuft) quitten kann.

    Wie sieht es mit der Kombalitat aus? Ein Spiel (Battkeships) von fast 100 hat bei mir mit dieser CPU nichtmehr funktioniert. Kann man diese Quote im allgemeinen ausweiten?

    Besser wieder die 68000 verbauen oder nicht? Was würdet ihr tun? (CPU-Takt nicht gesteigert!)
    C64 + SD2IEC (SD-Card Reader)
    Amiga500 + IDE68k + 1,8MB Speichererweiterung + ACA 500 + ACA 1220/33MHZ + HxC (SD-Card Reader)
  • Das hatte ich schon damals, also 1989/90 oder so, mal probiert. Benchmarks a la Sysinfo gab's da noch nicht, oder ich hatte sie nicht. Gefühlt waren Workbench und vor allem das elend lahme AmigaBasic etwas schneller, aber es war nur minimal. Dafür liefen einige Spiele nicht, oder die Crack-Intros liefen nicht und damit auch nicht das Spiel. Wenn ich mich richtig erinnere, war der 68010 an einigen Stellen optimiert worden, aber um seine Verbesserungen wirklich zu nutzen, hätte man entsprechend beim Programmieren neue Opcodes oder so nehmen müssen.
  • Thunderblade schrieb:

    Wenn ich mich richtig erinnere, war der 68010 an einigen Stellen optimiert worden, aber um seine Verbesserungen wirklich zu nutzen, hätte man entsprechend beim Programmieren neue Opcodes oder so nehmen müssen.

    Der 68010 hat auch einen kleinen Befehlscache spendiert bekommen, der für etwas mehr Speed, aber auch für Inkompatibiltät sorgt. Warteschleifen laufen dann zu schnell ab und das Programm gerät ausser Kontrolle, weil das Timing dann nicht mehr passt.
  • ogd schrieb:

    Der 68010 hat auch einen kleinen Befehlscache spendiert bekommen, der für etwas mehr Speed, aber auch für Inkompatibiltät sorgt. Warteschleifen laufen dann zu schnell ab und das Programm gerät ausser Kontrolle, weil das Timing dann nicht mehr passt.
    Ab dem 68010 gab es das Vector Base Register. Damit lagen die ganzen IRQ- und anderen Vektoren nicht mehr fest im Speicher sondern konnten an einen anderen Ort verschoben werden. Beim Amiga hiess das, sie mussten nicht mehr im Chip-RAM liegen.
  • CommieSurfer schrieb:

    Shadow Of The Beast läuft damit auch nicht (friert ein nach ein paar Metern des Laufens)
    Stimmt, gerade getestet. Aber die WHDLoad-Version läuft! Nur weswegen?

    Kombalität ist mir schon wichtiger, die anderen Vorteile des 68010 sind aber auch nicht schlecht. Eine schwere Entscheidung!
    C64 + SD2IEC (SD-Card Reader)
    Amiga500 + IDE68k + 1,8MB Speichererweiterung + ACA 500 + ACA 1220/33MHZ + HxC (SD-Card Reader)
  • Ich hatte damals auch einen 68010 drin, bevor die Turbokarte kam. In der Regel lief alles.
    Wenn ich mich recht erinnere war sowas wie selbstmodifizierender Code usw. ein Problem.
    Mitwäre das nicht passiert! :prof:
    :syshack: Meine 3D-Drucker Teile auf thingiverse.com/oobdoo/designs :strom:
    Sammlung | 91 Bücher bzw. 25.261 Buchseiten mit Z80/8080 Power
  • Ein Unterschied, der mir sonst noch einfällt, ist:
    move sr,dx ; (Status Register auslesen) : geht auf 68000, auf 68010 nicht, da man damit auch den Supervisor-Status ausliest. War wohl nicht mehr gewünscht.

    Die eizigen Schleifen, die schneller laufen, sind sowas:
    loop: move.l (a0)+,(a1)+
    dbf loop

    also 1-Wort Schleifen. Wirds länger in der Schleife, bringt der Cache nichts mehr.

    Eigentlich ist der 68010 auch deswegen eingeführt worden, weil man mit dem 68000 keinen virtuellen Speicher mit einer externen MMU realisieren kann, da man den letzten Befehl schlecht wiederholen kann. Da ist besonders der "movem"-Befehl von betrofffen. Das nützt für den Amiga nun überhaupt nichts, da dort keine MMU verbastelt worden ist und erst mit den höheren Prozessoren mit reinkommt. Benutzt wird sie für virtuellen Speicher aber wohl trotzdem nicht.
  • Hätten sich die Programmierer an die offiziellen Abstraktionsvorgaben gehalten, anstatt "systemnah" zu programmieren, würde wohl eigentlich alles laufen :)
    Aber nein, die mussten ja optimieren :D

    Also, ja, manches läuft. Das meiste nicht.
    (Denn letztendlich haben fast alle optimiert)
    HomeCon- digitalretropark- Bastelseite
    -
    User ignorieren? AdBlock!www.forum64.de##ARTICLE[data-user-id="xxxxx"]
  • AntaBaka schrieb:

    Hätten sich die Programmierer an die offiziellen Abstraktionsvorgaben gehalten, anstatt "systemnah" zu programmieren, würde wohl eigentlich alles laufen :)

    Na, so ganz unschuldig war Commodore auch nicht. Das erste Codebeispiel im offiziellen Hardware Reference Manual ist ein direkter Hardwarezugriff. (Danach geht es damit munter weiter.)

    Quellcode

    1. in assembler:
    2. Start: lea _custom,a0 ; Use a0 as base register and
    3. move.w #$7FFF,intena(a0) ; use the name intena as an offset
    4. ; to disable all interrupts
    5. In C:
    6. custom.intena = 0x7FFF; /* Disable all interrupts */
  • peiselulli schrieb:

    Ein Unterschied, der mir sonst noch einfällt, ist:
    move sr,dx ; (Status Register auslesen) : geht auf 68000, auf 68010 nicht, da man damit auch den Supervisor-Status ausliest. War wohl nicht mehr gewünscht.
    Das lag wohl daran, dass das die einzige 68000-Instruktion war, die die Popek-Goldberg-Kriterien verletzt hat.

    Quellcode

    1. 10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    2. 20 forj=1to5:printchr$(rnd(1)*16+70);:next
    3. 30 printint(rnd(1)*328)-217

    sd2iec Homepage
  • Wenn die Programmierer nicht direkt auf die Hardware zugegriffen hätten, sondern immer über die API gegangen wären, gäb es die besten Spiele auf dem Amiga nicht.
    Das Beispiel im Hardware-Reference-Manual ist auch richtig, da der Hardware-Programmierer nicht davon ausgehen kann, dass ein OS geladen ist. Konnte beim A1000 ja vorkommen.
    Eventuell waren die ersten Leser dieses Manuals die Kickstart-Programmierer selbst.