MP3 Programmierung

Es gibt 4 Antworten in diesem Thema, welches 639 mal aufgerufen wurde. Der letzte Beitrag (13. Mai 2023 um 13:11) ist von darkvision.

  • Hallo,

    da ich auch mal was anderes machen wollte hier eine Frage zur MP3-Programmierung:

    Im Hitchhiker's Guide' to GEOS gibt es 4 Werte für O_128_FLAGS (Bildschirmflag):

    ;--- Constants for 128 FLAGS

    CF_40 = $00 ; 64/128 40-column mode only

    CF_40_80 = $40 ; 64/128 40/80 and 80-column modes

    CF_64 = $80 ; 64 Only. Does not run under GEOS 128

    CF_128 = $C0 ; 128 80-column mode only

    Das steht ja so auch im MegaAssembler-HB.


    Für Geos habe ich ein Dokument von M. Randall (Korrekturen zum GEOS Programmer's Reference Guide), das dort 2 zusätzliche Werte enthält:

    $20 = 128/40 only

    und

    $60 = 128/40 or 128/80 only

    Mir kommt ja die Beschreibung zu $60 schon sehr seltsam vor...

    Gibt es diese Werte wirklich und würde Geos oder MP3 die dann auch nutzen? Oder ist das wieder eine Wheels- oder US-Geos-Besonderheit, die im GEOS Programmer's Reference Guide eigentlich nichts verloren hat, wenn sie nicht eindeutig so gekennzeichnet ist?

    Gruß

    Werner

  • Gibt es diese Werte wirklich und würde Geos oder MP3 die dann auch nutzen?

    Also Bit%5 wäre mir auch unbekannt. Ich hab mir den SourceCode zu MP3/LdApplic angeschaut, da wird am C128 ja der Grafikmodus getestet und dann mit Bit%6+7 im Infoblock verglichen. Also wird da nur $00,$40,$80,$C0 ausgewertet.

    Ich hab dann mal GEOS128v2US gestartet... dort findet sich der gleiche Code:

    Also GEOS128 und MP3-128 verhalten sich da identisch. Wenn es dann ein Bit%5 gibt kann das nur die Desktop-Oberfläche auswerten.

    GEOS64 würde ein 80Z-only-Programm immer starten, da es dort diese Abfrage nicht gibt. D.h. unter GEOS64 müssen GEOS128 Dateien mit Flag=$C0 vom DESKTOP verhindert werden.

    Genau so würde das wohl Dashboard machen wenn jemand Bit%5 gesetzt hat.

    Kurzer Gegentest mit Wheels128: Die Routine "TestgraphMode" findet sich dort ab $e781 im Speicher:

    Die Routine wird wie unter GEOS128/MP3-128 von LdApplic aufgerufen und ist identisch mit dem Original.

    Also testet Wheels selbst auch nur Bit%6+7 ... Bit%5 wird da also auch nur von einem Programm ausgewertet werden können.

  • Ich hab mir mal DashBoard128 angeschaut, da wird tatsächlich auf Bit%5 getestet:

    FF=Ende-Markierung der Tabelle, unter DashBoard128/40Z wird nur $00,$20,$40,$60 erlaubt, im 80Z-Modus nur $40,$60,$c0.


    Unter DashBoard64 gibt es was ähnliches:

    FF=Ende-Markierung der Tabelle, unter DashBoard64 wird nur $00,$40,$80 erlaubt.

  • Ich hab mir mal DashBoard128 angeschaut, da wird tatsächlich auf Bit%5 getestet:

    Danke für Deine Mühen.

    Das ist also wieder irgendwas Wheels-spezifisches, dessen Bedeutung nicht so ganz klar ist...

    Gruß

    Werner

  • Naja... es ist eine Erweiterung des GEOS-Flags, es wird ja mit dem Infoblock Offset +$60 beim starten eines Programms verglichen, aber halt nur auf Anwendungsebene. Vermutlich wollte er sicherstellen das niemand Toolbox128 unter Wheels64 startet.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Dabei sollten reine GEOS128-Programme grundsätzlich das c128Flag überprüfen weil das Bildschirm-Flag unter GEOS64 nicht ausgewertet wird. Also kann man sich ein GEOS128-Only Flag sparen, das sollte durch die Anwendung selbst geprüft werden. Das macht z.B. auch Toolbox128 das man unter GEOS64 zwar starten kann, aber direkt einen Fehler anzeigt... es ist also nur eine zusätzliche Sicherheitsabfrage.