Identify ][ - Automatische Hardwareerkennung für Apple II

  • Hallo,


    technische Fragen zu "ganz unten drin": wie erkennst Du die M$ Z80 Softcard? Man schreibt in $CNxx, um vom 6502 auf den Z80 umzuschalten bzw. dasselbe auf dem Rückweg. Hast Du Code für den Z80 an geeigneter Stelle hinterlegt, damit der Rückweg klappt? Oder gibt's einen anderen Trick?


    Zu den AppleBus-Karten: erkennst Du die Karte anhand der üblichen Pascal-Firmware-Codes? Oder brauchst Du eine eigene "Datenbank" für die Vielzahl an Karten, die es seinerzeit gab, um weitere Merkmale in den Karten-ROMs zu vergleichen? Als Beispiel die Unterscheidung vom Apple Disk II -Controller zum Ehring-Controller.


    Was machst Du mit Karten, die kein Firmware-ROM haben, aber stattdessen in diesem Bereich IO? Das Mockingboard erkennst Du. Es gibt weitere Karten, die z.B. zwei 6522 in $CNxx haben.


    Hast Du Dich schon mal intensiv mit der Transwarp für den II/IIe beschäftigt?


    Gruß, Ralf

  • Hallo Ralf,

    technische Fragen zu "ganz unten drin": wie erkennst Du die M$ Z80 Softcard? Man schreibt in $CNxx, um vom 6502 auf den Z80 umzuschalten bzw. dasselbe auf dem Rückweg. Hast Du Code für den Z80 an geeigneter Stelle hinterlegt, damit der Rückweg klappt? Oder gibt's einen anderen Trick?

    Das stimmt so. Ich versuche den Z80 in jedem Slot anzuschalten und ein kurzes Z80-Programm auszuführen, was eine bestimmte Speicherstelle von 0 auf 1 setzt. Das klappt nur, wenn der Z80 auch vorhanden ist in dem Slot. Nach Ausführung des kurzen Programms (zwei Befehle) deaktiviert sich der Z80 wieder selbst.

    Zu den AppleBus-Karten: erkennst Du die Karte anhand der üblichen Pascal-Firmware-Codes? Oder brauchst Du eine eigene "Datenbank" für die Vielzahl an Karten, die es seinerzeit gab, um weitere Merkmale in den Karten-ROMs zu vergleichen? Als Beispiel die Unterscheidung vom Apple Disk II -Controller zum Ehring-Controller.

    Ich verwende Pascal Firmware Codes, SmartPort Codes und einen Vorrat an einzelnen Bytes aus den jeweiligen ROM Codes mit denen ich versuche die Karten voneinander zu differenzieren. Um den Ehring -Controller zu erkennen müsse ich Bytes finden, die sich eindeutig vom Disk II Controller unterscheiden aber bei eigener Firmware sollte das kein Problem sein. Es ist wie gesagt eine Frage der Datenbank, die dahinter steht, wie viele Karten man am Ende erkennen kann.

    Was machst Du mit Karten, die kein Firmware-ROM haben, aber stattdessen in diesem Bereich IO? Das Mockingboard erkennst Du. Es gibt weitere Karten, die z.B. zwei 6522 in $CNxx haben.

    Das MockingBoard wird über die Timer erkannt und ja, es ist richtig, andere Karten mit 6522 würden auch als Mockingboard erkannt werden. Der FastChip //e wird üb er die IO-Schnittstelle erkannt in C0xx, ebenso die Saturn RAM-Karte die in C0Nx ihren IO-Bereich hat. Bei letzterer kann es aber zu Überschneidungen mit der Language Card kommen.

    Hast Du Dich schon mal intensiv mit der Transwarp für den II/IIe beschäftigt?

    Nein leider noch nicht. Ich wollte aber eine Erkennung für die TWGS hinzufügen. Manchmal fehlt mir einfach die technische Dokumentation anhand derer ich eine Erkennungsroutine schreiben könnte.


    Problematisch sind auch moderne Karten wie zB Videokarten für VGA oder HDMI oder Soundkarten wie die MegaAudio. Die letztere generiert virtuelle Mockingboard, die dann erkannt werden. Die originäre Erkennung dieser Karten ist mir bisher noch nicht gelungen.


    Grüße,


    Marc

  • Hast Du Dich schon mal intensiv mit der Transwarp für den II/IIe beschäftigt?

    Nein leider noch nicht.

    Hallo Marc,


    also, es gibt auch noch andere Accelerator-Karten für den Apple II.:)

    Beispielsweise befindet sich zur Identifizierung der TITAN/SATURN Accelerator Karte auf der mitgelieferten Pre-Boot Diskette das Programm ACCELROUTINES. Der Einsprung liegt nach BLOAD ACCELROUTINES bei $1205. Es werden die Slots 1-7 gescannt und bei gefundener Accelerator-Karte die Slot-Nr. in $1204 abgelegt.


    Gruß

    Michael

  • Hallo Michael,


    gibt es eine Möglichkeit die UltraWarp zu delektieren?


    Grüße,


    Marc

  • Hallo Marc,


    am Apple IIe vielleicht über Zähler-Inkrementierung und anschließendem Vergleich; zuerst im Normal-Modus (1MHz) und dann im Fast-Modus (13 oder 14MHz). Start/Stop-Abfrage über die Adresse $C019 (VBL).

    UltraWarp Normal-Speed mit STA $C05D.

    Fast mit STA $C05B.

    Bei der TransWarp, Normal-Modus (1 MHz) mit $C074:01.

    Fast-Modus (wegen Refresh ca. 3.3 MHz) mit $C074:0.

    UltraWarp/TransWarp am Apple 2+ vielleicht über den Modell-Identifizierungscode im Monitor-ROM „Apple 2+” und zusätzlich bereitgestelltem 64K AUX Memory sowie 65C02/65816 Prozessor. Eine Möglichkeit zur Unterscheidung beider Modelle am II+ sehe ich nicht. :grübel:

    Nach dem Kaltstart einmal aktiviert, lässt sich FAST APPLESOFT im RAM bei der TransWarp nicht mehr softwaremäßig abschalten oder modifizieren.


    Grüße

    Michael

  • Was habt ihr den da für cooles Zeug.
    Einen Apple ][ hab ich ja auch im Keller, nur leider keine Ahnung davon.
    Da sollte man sich mal mit dem oben genannten Zeugs außereinander setzen.


    Zeit müsste man halt mehr haben.


    Nachtrag:

    pasted-from-clipboard.png

    Ist das eine Apple ][ Floppy Emulation ?
    Falls ja, wo bekommt man sowas ?



    mfG. Klaus Loy

  • Ist das eine Apple ][ Floppy Emulation ?

    Der wohl beste Floppy Emulator für die Apple II Rechner - mangels Slots außer IIc - ist der CFFA3000, den es inzwischen wieder bei ReactiveMicro.com gibt, nachdem der Designer das Board nicht mehr fertigen konnte. Nicht billig, aber jeden Taler wert. Der CFFA3000 läuft sogar auch im Apple ///.


    Original: http://dreher.net/?s=projects/…cts/CFforAppleII/main.php


    Nachbau: https://www.reactivemicro.com/…m-for-ii-ii-iie-and-iigs/


    VG Albert

  • @as58 & @Holger, danke für die Info,
    leider zu teuer, der Apple ][ hat mich damals 8,-DM gekostet, am Recyclinghof :)
    Da kann ich doch nicht so viel investieren.

    Aber sehr interessant, mit FPGA oder CPLD, echt aufwändig.


    mfG. Klaus Loy

    • Offizieller Beitrag

    Ist das eine Apple ][ Floppy Emulation ?
    Falls ja, wo bekommt man sowas ?

    Der andere Floppy Emulator ist im transparenten Kästchen links neben dieser Platine, der ist von Big Mess o'Wires (https://www.bigmessowires.com/floppy-emu/) und läuft je nach Firmware am Apple II oder am Macintosh, mit Zusatzplatine auch am SmartPort des Apple IIGS.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • BugFix-Release V2.02

    Die Detektionsroutine für die Saturn RAM Karte führte bei Diskettenlaufwerken mit Disk II Controllern zu einem "flying" write und dadurch einer Zerstörung eines Tracks auf der Diskette. Dieses Verhalten tritt nur bei original Hardware auf. Andere Controller, Floppy Emulatoren oder Emulationen selbst sind nicht betroffen.


    Weiterer Fix: Ausgabe der Ziffer "0" bei der Berechnung der RAM Speichergröße erfolgt jetzt korrekt.


    DSK-Images:


    DOS 3.3: http://www.golombeck.eu/filead…wnloads/ID2_DOS33_202.dsk

    ProDOS: http://www.golombeck.eu/filead…nloads/ID2_ProDOS_202.dsk

  • Super Sache Marc! Ich habe in meinem Apple //c eine Z-RAM Ultra Karte. Die wird leider nicht erkannt. So viel ich weiß, werden diese Karten gleich wie die RamWorks Karten erkannt. Das RamWorks Handbuch hat auf Seite 47 ein kleines Assembly Programm, mit dem man die die Karte und die Anzahl von Bänke erkennen kann. Es wäre cool, wenn du das in deinem Programm auch einbauen könntest.

  • Hallo,


    ich habe ID2 mal mit zwei mir unbekannten Karten im Apple IIe (Slot 4 + 5) getestet, beide wurden nicht erkannt:



    Diese hier sieht für mich nach einer Centronics-Karte aus:



    Bei der hier handelt es sich vermutlich um eine Homebrew-ADC-Karte, insofern ist es vermutlich auch nicht erstaunlich, dass sie nicht erkannt wird:



    Wenn ich irgendwas beitragen kann, um die Erkennung zu verbessern - Ich bin willig aber relativ ahnungslos :)


    Schöne Grüße,

    Hans

  • Diese hier sieht für mich nach einer Centronics-Karte aus:

    Das ist ein Nachbau der üblichen EPSON-Karte, hier mit einem 2716. Im Original war ein 2708 drauf.

    Bei der hier handelt es sich vermutlich um eine Homebrew-ADC-Karte, insofern ist es vermutlich auch nicht erstaunlich, dass sie nicht erkannt wird:

    Die ist zwar hobbymäßig gebaut, aber sie hat ein Vorbild:

    http://www.ralf-kiefer.de/A2/JB_AD_Wandler/JohnBellAtoD.jpg


    Die ist von John Bell Engineering, wie erkennbar drauf steht. Diese Karte gab's als Nachbau aus Taiwan. Hier die Leerplatine, die ich Ende der 1980er kaufte:

    http://www.ralf-kiefer.de/A2/J…ll%20Engineering%20BS.JPG


    Hier habe ich sie vor ein paar Jahren bestückt:

    http://www.ralf-kiefer.de/A2/JB_AD_Wandler/JBE_BS_small.jpg


    Die Taiwan-Nachbaukarte hat "Auffälligkeiten":

    - der Aufdruck des Textes ist die eine spaßige Sache,

    - eine zusätzliche Leiterbahn unter dem rechten, unteren Sockel zum Anschluß der Sensoren erdet einen der Kanäle und macht eine 15-Kanal-Karte draus.


    Gruß, Ralf

    Einmal editiert, zuletzt von RalfK ()

  • Super Sache Marc! Ich habe in meinem Apple //c eine Z-RAM Ultra Karte. Die wird leider nicht erkannt. So viel ich weiß, werden diese Karten gleich wie die RamWorks Karten erkannt. Das RamWorks Handbuch hat auf Seite 47 ein kleines Assembly Programm, mit dem man die die Karte und die Anzahl von Bänke erkennen kann. Es wäre cool, wenn du das in deinem Programm auch einbauen könntest.

    Hi,


    vielen Dank für Dein Feedback. Ich habe mal versucht die ZRAM-Erkennung einzubauen und hänge hier ein DSK-image zum Testen an.


    Hoffe, dass es klappt...

  • Die eine Karte enthält ein ROM. Wenn ich den Inhalt kenne, kann ich die Karte zur Erkennung hinzufügen, da bei der Hardware Erkennung signifikante Speicherstellen im jeweiligen ROM-Bereich ausgelesen werden. Die ADC-Karte hat kein eigenes ROM daher wird sie vom Algorithmus leider nicht erkannt.

  • Die eine Karte enthält ein ROM. Wenn ich den Inhalt kenne, kann ich die Karte zur Erkennung hinzufügen, da bei der Hardware Erkennung signifikante Speicherstellen im jeweiligen ROM-Bereich ausgelesen werden. Die ADC-Karte hat kein eigenes ROM daher wird sie vom Algorithmus leider nicht erkannt.

    Gehe ich recht in der Annahme, dass die ersten 256 Bytes reichen? Dann habe ich sie hier mal angehängt. Ich habe mein EPROM-Lesegerät gerade nicht zur Hand und habe den Dump daher mit BSAVE gemacht. Ich bin aus dem Code nicht schlau geworden, was aber auch gut an meiner mangelnden Erfahrung liegen kann. :)

  • Gehe ich recht in der Annahme, dass die ersten 256 Bytes reichen?

    Zum Erkennen: ja. Der größere Teil vom Code ist bei dieser Karte ab $C800.


    Ich habe das gerade mit meinen diversen EPSON-APL-EPROMs vergleichen: im relevanten Teil, also dort, wo Code ist, habe ich das mehrfach so.

  • Die eine Karte enthält ein ROM. Wenn ich den Inhalt kenne, kann ich die Karte zur Erkennung hinzufügen, da bei der Hardware Erkennung signifikante Speicherstellen im jeweiligen ROM-Bereich ausgelesen werden. Die ADC-Karte hat kein eigenes ROM daher wird sie vom Algorithmus leider nicht erkannt.

    Gehe ich recht in der Annahme, dass die ersten 256 Bytes reichen? Dann habe ich sie hier mal angehängt. Ich habe mein EPROM-Lesegerät gerade nicht zur Hand und habe den Dump daher mit BSAVE gemacht. Ich bin aus dem Code nicht schlau geworden, was aber auch gut an meiner mangelnden Erfahrung liegen kann. :)

    Danke dir ich schaue Emir mal an und suche nach signifikanten Bytes! Was ist die genaue Bezeichnung der Karte? Dann kann ich sie zur ID2 Datenbank hinzufügen.

    :thumbup:

  • Danke dir ich schaue Emir mal an und suche nach signifikanten Bytes! Was ist die genaue Bezeichnung der Karte? Dann kann ich sie zur ID2 Datenbank hinzufügen.

    :thumbup:

    Ich würde die Karte unter "KX-P21KD" ablegen - Das ist die größte Bezeichnung, die sich auf dem Silkscreen der Platine befindet und die nach einer Art Typbezeichnung aussieht.

  • Erkennt jetzt die ZRAM-Karte und sollte die "Epson Printer" Karte von Hans erkennen (ROM Auszug siehe oben). Über Feedback würde ich mich freuen!

    Funktioniert, Danke!


  • Hallo Marc,


    was ist eigentlich der Anwendungsfall für diese sicherlich recht anspruchsvolle Tool? Bis auf den IIc, in den man ja kaum etwas einbauen kann, hat doch jeder II einen Deckel, den ich mal kurz liften kann. Dann sehe ich doch was drin steckt :/


    Übersehe ich da was?


    VG Albert

  • tomtom :


    Ich habe Dein Programm noch nicht ausprobiert, daher eine eventuell "dumme" Frage.

    Ich habe einige Karten von denen ich denke, das sie eher selten sind... z.B. eine Karte auf der "Karl Blome" steht. Ist wohl eine ADC Karte, ich weiß es im Moment nicht genau und habe dazu auch noch keinerlei Informationen gefunden. Egal...


    Meine Frage ist: gibt es eine Funktion in Deiner Software, die die für eine Erkennung relevanten Informationen ausliest und auch anzeigt, damit man Dir ggf. genau diese ausgelesenen Informationen samt Bild zur Karte und (sofern vorhanden) weitere Informationen liefern kann?


    Ist nur eine Idee/Frage

    Gruß Torsten

    BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, MSX VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, TP755cx, T20, T41, T61, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e, Sharp PC1401 & PC1403H, TI59 m. PC-100c, HP48SX & HP48GX


    An die Person, die meine Schuhe versteckt hat, während ich auf der Hüpfburg war: Werd' erwachsen! :motz:


    ::matrix::


  • Zum Beispiel der hier: Steckkartenidentifikation


    Sobald ich Disketten habe, werde ich das Tool sicher ausprobieren.