Hardware erkennen

Es gibt 28 Antworten in diesem Thema, welches 5.517 mal aufgerufen wurde. Der letzte Beitrag (20. November 2007 um 10:22) ist von alx.

  • Hallo,

    ich bin noch recht neu dabei fuer'n C64 zu proggen (seit der willow'07, asm).
    Und troztdem bin ich dabei zusammen mit retrofan einen Datei Manager bzw. erst mal einen Programm Starter zu bauen, um z.B. auf "neuer hardware" schneller in das gewuenschte verzeichnis wechseln zu koennen.

    Deswegen hier meine frage, wie erkenne ich welche hardware sich hinter welcher laufwerksnummer verbirgt?

    Erkennen moechte ich u.a.: mmc2iec, sd2iec, mmc64, ide64, iecata, cmd-hardware?, vice, "normale floppies", ...
    und die erkennung sollte auf kompatibel zu allen sein, nicht das ich immer wenn ich z.B. auf ide64 teste ein angeschlossenes sd2iec abstuerzt (reines beispiel!).

    Und, wo wir schon mal dabei sind, wie sind die befehle der verschiedenen hardware, um in ein verz. zu wechseln, bzw. heraus, und gibt es eine moeglichkeit mir den aktuellen pfad anzuzeugen?

    wenn mir jemand hierbei helfen kann, waere ich seeehr dankbar.

    Ciao, ALeX.

    P.S.: sobald ich eine version habe, die "irgendwie laeuft" poste ich sie hier.

  • Zitat

    Originally posted by alx
    Deswegen hier meine frage, wie erkenne ich welche hardware sich hinter welcher laufwerksnummer verbirgt?

    Für die Orginal-Floppies, die CMD-Geräte (laut Doku), sd2iec und vermutlich noch ein paar weitere (MMC2IEC kann es definitiv nicht): Auf dem Kommandokanal UI schicken und danach die Fehlermeldung auslesen. Evtl. vor dem Lesen des Fehlerkanals noch einen kleinen Augenblick (0.1s?) warten, offiziell soll das Kommando ein paar Sachen reinitialisieren.

    Zitat

    Und, wo wir schon mal dabei sind, wie sind die befehle der verschiedenen hardware, um in ein verz. zu wechseln, bzw. heraus, und gibt es eine moeglichkeit mir den aktuellen pfad anzuzeugen?

    Hier im Forum hat irgendwo mal jemand eine gescannte Doku einer CMD FD2000 abgelegt, die gleichen Verzeichniswechselbefehle funktionieren auch auf sd2iec(*). MMC2IEC wechselt indem man einfach das Verzeichnis lädt als ob es eine Datei wäre und es schickt gleich das Directory mit.

    Für sd2iec kann ich mit Bestimmheit sagen, dass es keine Möglichkeit gibt den aktuellen Pfad herauszufinden. Ich speichere intern nur die Clusternummer des aktuellen Verzeichnisses, das braucht viel weniger Platz als sich den kompletten Pfad zu merken.

    Für IDE64 gibts übrigens auch eine Doku zum Download. Ich meine dessen Verzeichniswechsel würde auch via CD erfolgen, aber nicht CMD-kompatibel.


    (*) Wieso gerade dazu kompatibel? Weil es meines Wissens die älteste und am weitesten verbreitete Speicherlösung für C64&Co ist, die echte Unterverzeichnisse unterstützt.

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

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Zitat

    Original von alx
    Erkennen moechte ich u.a.: mmc2iec, sd2iec, mmc64, ide64, iecata, cmd-hardware?, vice, "normale floppies", ...


    VICE?

    Gruß,
    Spiro

  • Zitat

    Original von strik
    VICE?


    Der Emulator VICE wird (wie auch Power64) als eigene Hardware erkannt, da auch er Spezialitäten bei den Verzeichnissen aufweist. Zum Beispiel liefert er Groß- und Kleinbuchstaben, sehr lange Dateinamen und komplette Pfade als Disknamen.

    Bitte melde dich an, um diesen Link zu sehen. | Meine Lieblings-Themen im Forum64:

    Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

  • Zitat

    Originally posted by Unseen
    Für die Orginal-Floppies, die CMD-Geräte (laut Doku), sd2iec und vermutlich noch ein paar weitere (MMC2IEC kann es definitiv nicht): Auf dem Kommandokanal UI schicken und danach die Fehlermeldung auslesen. Evtl. vor dem Lesen des Fehlerkanals noch einen kleinen Augenblick (0.1s?) warten, offiziell soll das Kommando ein paar Sachen reinitialisieren.


    Eher 1 Sekunde. Ich komm hier andauernd in den 1541 Reset-Deadlock, weil ich zu schnell Reset drücke und danach das Directory lade.

    Und was den Fehlerkanal angeht: Nützt kaum etwas, denn es kann immer ein SpeedDOS oder JiffyDOS etc drin sein, die haben einen eigenen String.

  • Zitat

    Originally posted by Fröhn
    Eher 1 Sekunde. Ich komm hier andauernd in den 1541 Reset-Deadlock, weil ich zu schnell Reset drücke und danach das Directory lade.

    Ja, Reset (entspricht UJ) macht ja auch deutlich mehr als UI.

    Zitat

    Und was den Fehlerkanal angeht: Nützt kaum etwas, denn es kann immer ein SpeedDOS oder JiffyDOS etc drin sein, die haben einen eigenen String.

    Wenn du einen besseren Vorschlag hast... Bis auf eine Ausnahme hatten alle Roms die ich gerade in VICE testen konnte den Text 1541 in der Startmeldung. Einzige Ausnahme war "Digi-Dos", das sich mit "73,,00,00" meldete.

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

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Hallo,

    Zitat

    Originally posted by Unseen
    Für die Orginal-Floppies, die CMD-Geräte (laut Doku), sd2iec und vermutlich noch ein paar weitere (MMC2IEC kann es definitiv nicht): Auf dem Kommandokanal UI schicken und danach die Fehlermeldung auslesen. Evtl. vor dem Lesen des Fehlerkanals noch einen kleinen Augenblick (0.1s?) warten, offiziell soll das Kommando ein paar Sachen reinitialisieren.


    z.Z. warte ich garnicht... soll ich jetzt 0.1 oder 1.0 sec warten? ausserdem kann ich davon ausgehen, das es keinen "sleep" befehl gibt, und ich einfach "sinnlos" cycles verbraten muss?


    Zitat

    Originally posted by Unseen
    Hier im Forum hat irgendwo mal jemand eine gescannte Doku einer CMD FD2000 abgelegt, die gleichen Verzeichniswechselbefehle funktionieren auch auf sd2iec(*).


    Hab' ich, danke.


    Zitat

    Originally posted by Unseen (aus einem anderen thread)
    Lest ihr das Inhaltsverzeichnis komplett und ohne weiteres UNTALK zwischendurch ein? MMC2IEC geht davon aus und rennt in ziemlich viele Timeouts (eines pro noch zu sendendem Byte, Länge weiss ich gerade nicht) wenn die Annahme nicht stimmt.


    einfach "$" oeffnen und alles lesen... ich bin wie gesagt neu in dem geschaeft, wie und wann und bei welcher hardware sollte ich ein UNTALK machen?

    Ciao, ALeX.

  • Zitat

    Originally posted by alx
    z.Z. warte ich garnicht... soll ich jetzt 0.1 oder 1.0 sec warten?

    Meiner Meinung nach sollten 0.1s locker ausreichen. Vermutlich würde es sogar reichen, an der Stelle überhaupt nicht zu warten - aber sicher ist sicher. =)

    Zitat

    ausserdem kann ich davon ausgehen, das es keinen "sleep" befehl gibt, und ich einfach "sinnlos" cycles verbraten muss?

    Ja, so werden Verzögerungen auf dem 6502 üblicherweise umgesetzt. Du könntest natürlich auch einen Timer passend programmieren und auf dessen Interrupt warten, aber da die CPU keinen Halt-Befehl kennt ist dann trotzdem eine Endlosschleife nötig.

    Zitat


    einfach "$" oeffnen und alles lesen... ich bin wie gesagt neu in dem geschaeft, wie und wann und bei welcher hardware sollte ich ein UNTALK machen?

    Dann wird das vermutlich genau so gelesen wie ich es beschrieben habe. UNTALK sollte niemals notwendig sein um von irgendwas das Directory zu lesen, MMC2IEC kommt einfach nur nicht damit klar - aber ich meine es würde auch niemals erzeugt werden so lange man die High-Level-Kernal-Routinen (CHRIN/CHROUT) zum Zugriff verwendet.

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

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Zitat

    Original von Retrofan


    Der Emulator VICE wird (wie auch Power64) als eigene Hardware erkannt, da auch er Spezialitäten bei den Verzeichnissen aufweist. Zum Beispiel liefert er Groß- und Kleinbuchstaben, sehr lange Dateinamen und komplette Pfade als Disknamen.


    Hm... Du meinst also das virtuelle Drive, wenn man innerhalb von VICE etwas ausführt?

    Ich dachte, es ging hier darum, was man an einem realen C64 alles finden kann. Und mir war neu, dass man VICE an einen realen C64 anschließen kann.

    Gruß,
    Spiro

  • Zitat

    Originally posted by Unseen

    Wenn du einen besseren Vorschlag hast... Bis auf eine Ausnahme hatten alle Roms die ich gerade in VICE testen konnte den Text 1541 in der Startmeldung. Einzige Ausnahme war "Digi-Dos", das sich mit "73,,00,00" meldete.


    Mein Vorschlag: Auslesen der letzten 8 Bytes vom Laufwerk-ROM. Damit erkennt man auf jeden Fall, ob es sich um ein 1541-kompatibles Laufwerk, 1581 oder ein CMD-Laufwerk handelt.

  • Zitat

    Original von strik
    Ich dachte, es ging hier darum, was man an einem realen C64 alles finden kann. Und mir war neu, dass man VICE an einen realen C64 anschließen kann.


    Beim Erkennen von den VICE als "Hardware" geht es darum, dass FIBR auch auf Emus gut laufen soll, weil viele User neue Programme zuerst auf dem Emu testen. Wenn es dort nicht taugt (also z.B. kein Verzeichnis anzeigt), gehen sie (nicht alle) davon aus, dass sie es erst gar nicht auf einem realen C64 ausführen brauchen. Deshalb unterstützt ALeX auch VICE und Power64 und dafür muss leider ein wenig zusätzliche Arbeit investiert werden, weil die Emus einige spezielle Eigenschaften beim Verzeichnisaufbau mitbringen.

    Bitte melde dich an, um diesen Link zu sehen. | Meine Lieblings-Themen im Forum64:

    Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

  • Zitat

    Originally posted by Fröhn
    Mein Vorschlag: Auslesen der letzten 8 Bytes vom Laufwerk-ROM. Damit erkennt man auf jeden Fall, ob es sich um ein 1541-kompatibles Laufwerk, 1581 oder ein CMD-Laufwerk handelt.

    Mindestens MMC2IEC kennt kein M-R. sd2iec wird es demnächst kennen, aber mehr oder weniger zufällige Daten zurückliefern.

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

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Moin,

    Zitat

    Originally posted by Unseen

    Mindestens MMC2IEC kennt kein M-R. sd2iec wird es demnächst kennen, aber mehr oder weniger zufällige Daten zurückliefern.


    Also bis jetzt klappt die identifikation ueber "UI" gut... mehr demnachst.

    Ciao, ALeX.

  • Zitat

    Original von Cyberdyne
    die 1541-III sollte nicht vergessen werden!


    Wer hat die denn?

    Bitte melde dich an, um diesen Link zu sehen. | Meine Lieblings-Themen im Forum64:

    Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

  • ich und mindestens noch einer hier im chat und jogi bekommt dieses jahr wohl noch eine.

    dar jan baut gerade die zweite auflage!

    und er arbeitet auch an der firmware weiter!

    dank shadowolf sind hier im forum alle mit mmc2iec versorgt aber wenn man über den tellerrand schaut, gibt es da draußen noch anderes!

    der jan antwortet auch sehr hilfsbereit auf fragen! und es gibt glaube ich auch schon ein paar tools auf seiner seite, wo man vielleicht sich was abschauen kann?!

    gruß,
    cyberdyne

  • Hallo,

    ich wuerde gerne das IECATA im FIBR untestuetzten, brauche dafuer aber noch ein paar infos:

    was liefert das IECATA zurueck, wenn man den befehl "UI" sendet?
    (Ich hoffe so was wie "73,IECATA,00,00")

    welche befehle machen folgendes:
    - in ein verz. wechseln ("CD:dir" ?)
    - zurueck gehen ("CD<", "CD:<" ?) [< = linkspfeil]
    - in das root verz. gehen ("CD:/" ?)

    was muss ich machen, um das geraet z.B. nach einem karten wechsel zum neu laden zu bringen? (einfach das root verz. neu laden, oder "I", oder ... ?)

    Ciao, ALeX.

    P.S.: was muss ich machen, damit er nicht ← sondern das zeichen darstellt? (ich hab das zeichen direkt eingegeben, und er wandelt es um, aber zeigt es nicht an...

  • nur mal so am Rande: ehrlich gesagt fnde ich einen Filebrowser der "alles kann" gar nicht so erstrebenswert.
    Alles hat ja eh niemand gleichzeitig dran. Dank cross-dev-kram ist es ja kein Problem für jede blöde Erweiterung dieses Jahrtausends nen eigenen -- und somit ungliech effizienteren -- browser zu assemblieren.
    Erscheint mir sehr viel sinnvoller als später nen 100 Block Browser zu haben der CMD und MMC + IDE gleichzeitig kann....
    Nur meine Meinung natürlich

    Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.

  • Hi,

    wenn wirklich jeder nur EINE hardware da hat, waere es viel einfacher, richtig.
    aber ich bin mir sicher, das mal jemand was von seinem ide64 auf eine 1541 kopieren will (zwei hardware!) oder auf seinem mmc2iec in ein "d64" gehen will (fast wie 2 hardware).
    also macht es nach meiner auffassungsgabe keine sinn nur fuer eine hardware zu programmieren.
    und wenn ich schon mehrere (und wenn es nur 2 sind) unterstuetzte, so ist der unterschie auch noch ein paar mehr zu unterstuetzten sehr gering.

    Ciao, ALeX.