Hallo Besucher, der Thread wurde 7,2k mal aufgerufen und enthält 30 Antworten

letzter Beitrag von Jan am

Große Festplatten am Bridgeboard / Option ROM ohne ROM Chip

  • Das MSD Zeigt mir nicht den Speicher unterhalb 640KB an. Das XTIDE BIOS soll genau das KB direkt darunter belegen, möglich dass es da was von Janus überschreibt.
    http://www.vcfed.org/forum/sho…-BIOS&p=123844#post123844




    Das ist es eher nicht, es ist ein Problem mit den Interrupt-Handler, zumindest wie es das XTIDE-BIOS angeht... XTIDE wird eigentlich über Int19 getriggert, der wird aber - wenn Janus aktiviert ist - nicht mehr aufgerufen. Daher kam jetzt der Ansatz über das VERY_LATE_INIT per Int13. Das ist aber auch zu unsauber, da der auch schon vom Janus "gehooked" wurde... Mein Plan ist es den Init-Vorgang von einem ST0X oder Future Domain nachzuahmen. Kann zur Folge haben, dass so etwas wie ein Laufwerksmapping B>A und ein Menü vorweg nicht mehr funktioniert, but ... who cares... booten von A: klappt wenn Disk drin ist, sonst Versuch von C: - reicht in meinen Augen.

    Das ist auch interessant...



    EDIT: Was eine Zeitverschwendung: amouse funktioniert bei mir irgendwie erst nach dem zweiten versuch, unabhängig davon ob ich das XTIDE BIOS Lade oder nicht. Bei dem Versuch jetzt hatte ich das XTIDE BIOS hinter den Janus Handler gejoint.
    Jetzt muss ich es nur noch auf Echter Hardware testen


    @Shodan: Hast Du es mal mit deinem SCSI Controller versucht? Du kannst ja mal einen ROM aus dem Internet versuchen, sonst kann ich dir jetzt auch helfen es zu dumpen. Nimm dafür am besten einen anderen PC, starte ihn erst mal ohne die Karte und führe msd aus. Unter Memory bekommst Du eine Map des Oberen Speichers. Mache davon ein Foto. Dann starte den Rechner mit dem Controller neu und guck wieder in MSD. Dort sollte jetzt oberhalb von C800 zusätzlicher ROM auftauchen, das ist dann das BIOS von dem Controller.
    In debug gibst Du dann ein:

    Code
    1. n A:\adaptec.rom
    2. w %start addresse aus msd%:0 4000
    3. q

    Wenn Du den Option ROM dann über pc.boot lässt musst Du ihn auf der Karte deaktivieren oder von dort entfernen.

  • Also ich habe jetzt im Emulator eine Festplatte über einen Standard AT Controller angebunden, der aber über das XTIDE BIOS angesprochen wird. Das XT BIOS habe ich einfach an den Janus Handler, in der Datei pc.boot angeängt. Das nimmt jetzt halt noch 8KB DP RAM in anspruch.


    AMouse und awrite funktionieren :thumbsup: , das tuen sie allerdings auch wenn ich einen normalen XTIDE mit BIOS ROM emuliere mit de ROM Adresse auf DC00, wobei das eventuell nebenwirkungen gibt, da es immernoch im bereich des DPRAMs liegt, aber der Amiga wahrscheinlich nichts davon weiß.


    Wenn ich wieder meine richtige Hardare habe werde ich das dann wahrscheinlich auch genau so implementieren. Jetzt besorge ich mir mal noch eine Karte für Etherbridge.

  • Hm. Da habe ich ein Problem.


    Ich habe zur Zeit keinen weiteren lauffähigen PC mit ISA zur Verfügung.


    Da ich die A2386SX ohne SCSI-Karte nicht in Windows 3.11 booten kann, kann ich MSD auch nicht ohne SCSI-Karte ausführen.



    Bei C800 kann ich was erkennen. Mit Debug G=C800:6 kann ich auch erfolgreich das BIOS aufrufen.


    Ist bei "start addresse aus MSD" C800 gemeint?

  • Das könnte gut möglich sein. MSD ist auf der ersten Setup Diskette von MS Dos 6. 22 drauf, das setup einfach mit f3 beenden und MSD eingeben.


    Du kannst es auch am bridgeboard machen, deaktiviere dafür den janus handler (pc.boot umbenennen) und dann einmal ohne die Karte und einmal mit gucken. Dann siehst du wo ROM auftaucht.


    Das dumpen bitte auch mit deaktivierem Janus Händler machen. Debug ist auf der gleichen Diskette.
    Und ja bei dir wäre es dann Segment C800.


    Sonst kannst du ja auch einfach einen ROM aus dem Internet laden...

  • Aber andererseits bist du schon so nah dran ;) .


    Mein nächstes Projekt wird jetzt das ganze ohne das XTIDE BIOS bei einer IDE Platte hinzubekommen.
    Ich habe ja einen normalen ATA Controller drin, der seine Register auch an der richtigen Adresse einblendet. Das Problem beim BIOS der A2286 soll ja sein dass man nur fest vorgegebene Geometrien verwenden kann. Die Adresse zu der Datenstruktur welche die Geometrie angibt steht der AT Technical Reference nach in der IVT und zeigt dann im Falle der A2286 auf eine ROM Adresse. Jetzt sollte es ja möglich sein über einen sehr kleinen option Rom einfach den IVT Eintrag zu ändern, sodass er auf eine andre Geometrie zeigt die dann im Option ROM mit drin steht. So weit die Theorie.


    Mein Problem ist jetzt aber erst mal dass bei mir ohne XTIDE bios überhaupt keine Platte erkannt wird. Wenn ich im BIOS der A2286 eine Platte einstelle sollte diese doch zumindest von Fdisk auf irgend eine weise erkannt werden, wenn auch mit falscher Geometrie. Bei mir kommt nur "No fixed Disk found" und auch die Festplatte und festplattenled zeigen keine Reaktion während des Bootproesses und auch danach.


    Mit XT IDE BIOS, dass ich letzte Woche noch von Floppy geladen habe konnte er aber sogar von der Platte booten, also ist die Hardware wohl in Ordnung. Hat jemand eine Idee woran das liegen kann?

  • Ich konnte das ganze nun am Wochenende auf echter Hardware testen und es hat da wunderbar funktioniert. Der PC bootet von seiner HD und aread und awrite funktionieren. Nur manchmal hat er den Janus Händler nicht gleich geladen, aber das kann auch an meiner HW liegen...


    Da ich gerade keine funktionierende Festplatte für den Amiga habe wollte ich dann versuchen eine Amiga Partition auf der PC Platte einzurichten. Zu diesem Zweck habe ich extra eine zweite Platte angeschlossen, da adisk die erste nicht mochte (die hat 1GB von der die Hälfte dos war. Es meinte aber der gesamte Speicher ist grad mal halb so groß wie die dos partition.)


    Das erste Problem war dann dass DJMOUNT keine Partitionen gefunden hat. Das Problem dürfte sein dass das IDE BIOS erst nach dem Janus Händler gestartet wird und dieser dann entsprechend die Festplatten nicht erkennen kann.


    Mit Hilfe von debug habe ich dann den janus handler direkt aufgerufen, aber der hängt sich dann irgendwo auf. Trotzdem hat DJMOUNT die partition dann gefunden. Jedoch ist sie nach dem Formatieren immer noch unformatiert und das Formatieren verbraucht so um die 2, 5MB Amiga RAM, weshalb ich zusätzlich eine Speichererweiterung Stecken müsste. Ich habe FFS und Quick format verwendet bei normalem Formatieren gab es nach einiger Zeit einen Stack Overflow.


    Das Problem mit dem Janus Handler konnte ich beheben indem ich sein laden durch das BIOS verhindere indem ich seine Option Rom Signatur ungültig mache (erstes Byte verändern) und ihn dann erst unter dos lade. Hierfür habe ich mir dann eine kleine exe gemacht.


    Das Problem dass sich die PC Amiga Partition nicht richtig formatieren lässt bleibt aber. Ich habe dafür zwei Festplatten getestet.


    Hat hier jemand Schon mal eine Amiga Partition auf PC Platte verwendet? Wenn ja bitte melden, selbst wenn es nur ein 08/15 setup war.

  • Mit einer 64MB CF Karte, auf der sowohl eine dos als auch eine Amiga Partition ist hatte es dann doch geklappt.


    Allerdings steigt die PC Seite bei Verwendung der Amiga Partition immer noch reproduzierbar bei manchen Aktionen aus.


    Wenn ich in der config.sys stacks=0,0 angebe sodass der Stack der Anwendung verwendet wird gibt es zwar keine Fehlermeldung, aber die PC Seite hängt sich trotzdem auf, der Amiga kann seine Partition jedoch weiter verwenden.


    Um den aufgehangen PC zu debuggen habe ich einen eigenen Keyboard interrupthandler installiert. Dabei ist mir aufgefallen dass DJMount scheinbar auch Tastaturinterrupts verendet für die Kommunikation.
    Der Janus Handler scheint den interrupt aber nicht zu hooken, was etwas widersprüchlich ist.


    Wenn ich unter MS Dos 6.22 keinen Deutschen Tastaturtreiber (welcher den interrupt hookt?) installiere, funktioniert alles.
    Es macht keinen Unterschied ob ich zuerst den Tastaturtreiber oder zuerst den janus handler starte.


    Hat jemand eine Idee oder kann es auf seiner Hardware reproduzieren?

  • Der Tastaturtreiber von MS-DOS 3.3 funktioniert. Deshalb denke ich dass einfach der Treiber von MS-DOS 6.22 mit dem Hanus Handler nicht zusammenspielt.


    Sobald ich versuche den Tastaturinterrupt zu hooken gibt es Probleme beim Zugriff auf die Amiga Partition. Selbst wenn meine ISR nur einen Jump zur alten ISR war scheint es zu einer Stack Korruption zu kommen, sobald ein Festplattenzugriff erfolgt. Die Tastatur hatte immer funktioniert bis zum Festplattenzugriff.



    Aber mit dem alten Treiber scheint ja alles zu funktionieren, also sieht mein Setup jetzt so aus:


    Der Amiga bootet eine Diskette, diese startet zuerst den PC (Binddrivers). Über die modifizierte pc.boot Datei sieht der PC das XTIDE Bios und führt es aus, "übersieht" aber den Janus Handler. Damit kann es DOS von der CF-Karte Booten die an einem einfachen IDE Kontroller hängt. Das DOS startet sofort den janus Handler, welcher zusammen mit dem XT-IDE BIOS über die pc.boot bin in den DP RAM geladen wurde.
    Durch das verzögerte Laden den JH kann er die durch das XT-IDE BIOS initialisierte CF-Karte und die darauf vorhandene Amiga Partition erkennen.
    Die Amiga Partition wird dann vom Amiga mit DJMount gemountet und er transferiert die Kontrolle an die Partition und bootet von dort OS3.1


    Jetzt bin ich noch dabei beim starten automatisch eine RAD anzulegen von der aus dann Neustarts stattfinden können.


    Das PC Window scheint sich nich zu merken wenn ich die Farben anpasse, auch wenn ich extra auf Speichern gehe. Auch scheinen die Janus Tools 2.1 kein PCDisk zu enthalten, weshalb ich das von der original Diskette verwende. Die Janus Tools 2.1 habe ich von hier: http://amiga.resource.cx/exp/a2286at


    Im PC Color Screen kann ich irgendwie auch nicht den Unteren Bereich verwenden, weshalb das PC Fenster etwas zu klein ist, wenn ich nicht in den Rahmenlosen Modus gehe. Kann es sein dass der PC Color Screen NTSC ist, während der Workbench Screen PAL ist? Mit den alten Janus Tools hatte ich das Problem nicht.


    EDIT: in devs gibt es ein jdisk.device. Bringt mir das was in bezug auf PCDisk

  • Der Mod scheint tatsächlich das Problem mit dem Tastaturtreiber von DOS 6.22 behoben zu haben und laut Sysinfo ist die Amiga Partition auf der CF Karte ca 50% schneller geworden. Ich kann den fix nur empfehlen, das war in wenigen Minuten gemacht.


    Ich hab auch mal in die Schematics geguckt was der Fix macht und es sieht so aus, als ob das Chip Enable vom Tastaturkontroller an eine Adressleitung gehängt wir (anstelle von Ground, was ihn immer aktiviert). Das ist der Workaround für die unvollständige Adresskodierung.