Beiträge von Benedikt

    Zumindest der Monitor lässt sich als Ursache ausschließen, weil du sonst auch keinen Text sehen würdest.


    Demnach kann nur entweder die Software oder die Grafikhardware eine Fehlfunktion haben.

    Sind denn alle Grafikmodi betroffen, oder nur bestimmte?

    Diverse Software setzt im VGA-Modus 80186-Befehle voraus.

    Dann wird aber PAL-FBAS erzeugt, weil ich sehe es zwar schwarz weiß - aber ansonsten ist schon ok.

    Nein. Eben gerade nicht.

    PAL ist nur die Farbnorm. Mit der Zeilenzahl und der Vertikalfrequenz hat das im Grunde nichts zu tun, auch wenn es im praktischen Einsatz starke Korrelationen gibt. Der europäische 1084 ist flexibel genug, um die allgemein mit NTSC assoziierten Timings zu unterstützen, unterstützt aber das eigentliche NTSC-Signal (d.h. die Farbinformationen) nicht.


    Die Streifenmuster / Probleme habe ich mit dem RGBI Signal :(

    Wie sehen denn die Streifenmuster aus? Hast du mal ein Bild von dem Bild?

    Vielleicht hat der Treiberbaustein (meist 74LS244 oder 74LS245) einen weg.

    Mir ist dann nur völlig unverständlich warum der 1084 bei VGA an Composite über einen Adapter Farben anzeigt, bei direktem Composite Anschluss an den PC aber nicht.

    Das Rätsel kann ich auflösen:

    Der 1084 kann zwar 50Hz und 60Hz, aber nur genau dann das aus der CGA-Karte kommende FBAS-Signal in Farbe anzeigen, wenn es sich bei dem 1084 um ein amerikanisches Modell mit NTSC-Decoder-Chip handelt. Europäische Modelle haben stattdessen einen PAL-Decoder. Der sieht in einem NTSC-FBAS-Signal nur ein Schwarzweißbild mit lustigen Streifenmustern.

    Ich habe mir um das näher untersuchen zu können daher ein Multi-Messgerät gekauft, das misst auch fröhlich, allerdings ist mir nicht ganz klar wie ich es benutzen sollte. Muss ich zu jedem Teil herausfinden, was z.B die eigentliche Ladekapazität oder Widerstand sein sollte und es dann entsprechend mit der Messung abgleichen?

    Im verbauten Zustand kann man die Komponenten kaum sinnvoll durchmessen, weil meist andere Komponenten in der Schaltung die Messung verfälschen.

    Ggf. könntest du aber die Synchronpulse im Bildsignal messen. Idealerweise mit Logikanalysator oder Oszilloskop, aber mit Widerständen und einer Soundkarte sollte es notfalls auch gehen.

    Ein kurzer Blick in die Funktionsbeschreibung lässt mich sehr stark vermuten, dass sich MMU und IOU jeweils mit ein bis zwei GALs nachbilden lassen.

    Soll der Rechner SRAM benutzen, ist sowieso ein neues Platinenlayout vonnöten, also sollte die Unterbringung der GALs kein Problem sein.


    Bezüglich des Gehäuses bleibe ich dabei, dass ein Holzgehäuse wahrscheinlich am praktikabelsten ist. Für eine „Bausatz-Apfelkiste“ wäre es auch durchaus stilecht.

    Bei einer FPGA-basierten Lösung empfehle ich einen Blick in Richtung MiSTer FPGA und das darauf aufbauende MiSTer Multisystem.

    Ob nun dafür oder für einem kompatiblen Nachbau mit Logik-Chips, EPROM und SRAM könnte man auf jeden Fall recht leicht ein Sperrholzgehäuse bauen.

    Tastaturschalter und Tastenkappen sind auch nicht das Problem.

    Es ist natürlich möglich, daß im code des int21 gar nicht der befehl des Schreibens der Bytes in den Speicher stattfindet, sondern "außerhalb", in tieferen BIOS-Schichten. Wenn das so ist habe ich mit meinem Ansatz Pech gehabt. Ich glaube aber vorerst, daß das nicht so ist. Der Grund ist, daß das das Schichtenmodell untergraben würde: Anwendungsprogramm <-> Dos <-> Bios/Hardware. Man wird sehen.

    Wie bereits zuvor erwähnt, kann das überhaupt nur funktionieren, wenn der Transfer vom Disketten-/Festplattencontroller in den RAM nicht per DMA erfolgt, was aber eigentlich die effizientere und bei PCs übliche Variante ist.

    Grund: Was auf seinem Weg in den RAM niemals in CPU-Registern landet, kann man auch nicht „vor dem Zurückschreiben“ bearbeiten.


    Hier wäre also die Frage, ob du die Zielarchitektur gut genug kennst, um das ausschließen zu können. Ansonsten verbrätst du eventuell viel Zeit für nichts.

    Zu 99% wird das einfach eine Kopie, vor dem Befehl das Byte in den RAM zu schreiben kommt bei mir aber noch die gewünschte Änderung des Wertes und dann erst das mov es:[di],al oder stosb. Auf diesem Weg erspare ich mir das höchst zeitaufwändige nochmalige Einlesen vom RAM in die CPU, Änderung des Wertes, Zurückschreiben ins RAM.

    Was spricht gegen ein gewöhnliches Lesen mit anschließendem Ersetzen mit z.B. folgendem Code und passender Tabelle für xlatb?

    Code
    transform:
            shr     cx,1
            jc      odd
    l1:     lodsb
            xlatb
            stosb
    odd:    lodsb
            xlatb
            stosb
            loop    l1

    Das ist nicht einmal auf einem 8088 langsam. Der Flaschenhals dürfte eher der Massenspeicher sein.

    Hintergrund: Ich möchte in TurboPascal einen Ersatz für die blockread(params....) Prozedur schreiben, welcher eine Datei einliest, deren Bytes bevor sie noch im RAM landen aber on-the-fly verändert TPs original blockread() ruft dazu den int21 Unterfunktion 3FH auf.

    Soweit ich weiß befördert das BIOS die Daten vom Festplatten- oder Diskettencontroller per DMA-Transfer an der CPU vorbei direkt in den RAM.

    Folglich wird es sich gar nicht vermeiden lassen, zum Ersetzen einzelner Byte-Werte noch einmal über den Block zu iterieren.


    Vorschlag von meiner Seite:

    Lass den Quatsch mit dem Disassemblieren und versuche stattdessen, die Schleife zum Ersetzen der Werte bestmöglich zu optimieren.

    Zum Nachbearbeiten von Scans ist ggf. das Kommandozeilenwerkzeug unpaper einen Blick wert.

    Die Funktionen davon beinhalten z.B. das Zentrieren des erkannten Inhalts auf weißem Hintergrund, Entfernung kleiner Fleckchen etc.

    Es kann auch Scans begradigen. Die Funktion ist aber nicht sehr zuverlässig.

    Meist muss außerdem erst einmal der Kontrast stimmen, damit unpaper halbwegs brauchbare Ergebnisse liefert.

    Für Konsolenlaufwerke gibt’s oft noch Ersatz-Dioden, da die Laufwerke über ihre Firmware an das Gerät gebunden sind und nicht gegen x-beliebige Alternativen getauscht werden können. Mit Glück passt eine solche Diode auch im PC. Die Frage ist nur, ob sich die Ersatzteile lohnen. Gibt’s nicht vielleicht ein Gotek für IDE-CD/DVD-Laufwerke?

    Es gibt auf jeden Fall SATA-zu-PATA-Adapter, mit denen man ein neues Laufwerk anschließen kann.

    Bei Hardware-Emulatoren bewegt sich diesem VOGONS-Thread nach zu urteilen auch langsam etwas.

    Ich frage mich gerade, ob man für diesen Anwendungsfall einen Satz Peephole-Optimizer-Regeln für den SDCC schreiben könnte.

    Dann könnte man im C-Quelltext 8080-Funktionen einbinden, die dann von diesem Regelsatz zunächst in Z80-Syntax umgewandelt und anschließend von den normalen Optimizer-Regeln des Z80-Backends in effizienteren Z80-Code umgewandelt werden.

    Für einen Commodore 1084 aus dem Hause Philips habe ich auch seit ein paar Jahren ein umgebautes Seriell-Kabel mit achtpoligem DIN-Stecker (kreisrund, nicht Hufeisen) im Einsatz.

    Läuft bei mir mal an einer CGA-Karte, mal an einer EGA-Karte im 200-Zeilen-Modus.

    Korrektor: Die PLL-Parameter sind M=117, N=6 und R=1. Die Parameter von oben würden rechnerisch auch den korrekten Takt ergeben, aber für ein Zwischenergebnis eine einschränkende Bedingung im Datenbuch verletzen.

    Da bei mir der besagte Button immer noch ausgegraut ist, kann ich leider auch nicht die Timing-Werte eintragen...

    Wenn es keine kompatiblen Tools gibt, bleibt wohl nur Frickeln.

    Ok, wir sprechen von einer älteren Grafikkarte (ca. 1995) und Windows 98 (SE). Denke daran habt Ihr gar nicht gedacht.
    Zu dem Zeitpunkt (also ca. 1998-1999) gab es noch keine Wide-Screen Monitore.

    Doch, doch. Die weitgehende Nichtexistenz von Breitbildformaten bei PCs interessiert aber die Taktgeneratoren der Grafikkarte nicht.

    Inzwischen habe ich mein „über den Daumen gepeilt“ etwas präzisieren können. Dies sind die Timings für die VESA-Modi mit 1280x1024 und 1440x900 Pixeln bei je 60 Hertz:

    http://www.tinyvga.com/vga-timing/1280x1024@60Hz

    http://www.tinyvga.com/vga-timing/1440x900@60Hz

    Wie man sieht, weicht der Pixeltakt um knapp 1,5% ab. Entweder kann man das über geeignete PLL-Parameter kompensieren oder man muss mit der Abweichung leben und die Gesamtbreite anpassen, damit die übrigen Timings wieder stimmen.

    Ich hatte schon einmal den Plan geschmiedet, einer S3 Trio64V+ unter DOS durch Programmierung auf Registerebene einen 1360x768-Pixel-HighColor-Modus zu entlocken, der so gerade in den VRAM passt, bin aber bislang noch nicht dazu gekommen.


    Nachtrag:


    Mit den PLL-Parametern M=117, N=14 und R=0 kommt man bei einem Referenztakt von 14,31818 MHz auf einen Videotakt von 106,49 MHz, der an den 106,47 MHz aus der Tabelle sehr nah dran ist. Damit sollte die Hardware dem 1440x900-Pixel-Modus nicht im Wege stehen.

    Also über den Daumen gepeilt sollte die Karte zu einer Auflösung von 1440x900 Pixeln bei 60 Hz fähig sein und eine Trio64 mit 4 MiB VRAM sollte das auch in TrueColor können.

    Hier wirst du aber den passenden Treiber für die Auflösung selber schreiben bzw. modden müssen. Immerhin sollten die notwendigen Informationen aus dem Handbuch hervorgehen, wodurch es prinzipiell machbar ist.

    Bei so einem einzelnen Loch wäre ich da viel zu faul für und würde einfach einen dieser runden „Q.C. passed“-Aufkleber drauf machen.

    Noch besser: „warranty void if removed“. Wetten, keiner merkt 's? :tüdeldü:

    ?!

    Selbstverständlich nicht für den Weiterverkauf bestimmt.


    Für die private Sammlung ist das Konzept „Mackenaufkleber“ aber oft die mit Abstand einfachste Lösung.

    Ich würde da was 3D-drucken und mit einem kleinen Tupfer halbwegs passender Farbe schmücken.

    Hab sowas an einem 64ger gemacht, um das Loch eines Schalters zu schließen:

    Bei so einem einzelnen Loch wäre ich da viel zu faul für und würde einfach einen dieser runden „Q.C. passed“-Aufkleber drauf machen.

    Noch besser: „warranty void if removed“. Wetten, keiner merkt 's? :tüdeldü:

    So und jetzt bringst du bitte mal ein Beispiel für das von dir hier kolportierte Szenario "Mensch Ärgere Dich mit anderem Namen, anderem Spielbrett, anderen Regeln aber immer noch gleichem Spielprinzip" passt, damit das noch irgendwas mit dem OP zu tun hast.

    Bitte sehr!
    Mein erstes Suchergebnis: Die 19 besten Mensch ärgere Dich nicht Spiele und Varianten (HIPTOYS)


    Ravensburgers Memory: Die Spielidee ist so primitiv, dass sie keiner weiteren Ausgestaltung bedarf, der Name „Memory“ ist aber eine eingetragene Wortmarke.

    Spannendes Beispiel, handelt es sich bei dieser Marke um einen Gattungsbegriff wie bspw. Tempo.


    Noch spannender wird es, wenn die Marke in den allgemeinen Sprachgebrauch über geht. Denn dann kann es passieren, dass nach Ablauf der Rechte, die Verlängerung selbiger verweigert wird.

    Gerade das scheint der Verlag auf dem Rechtsweg verhindern zu wollen: Rechtsstreit um "Memory": Das kleine "r" hinter Memory® (TAZ)

    Eine E-Mail ans Marketing nach dem Schema „Dürfen wir auf einer Seite mit dieser Aufmachung kostenlose Werbung für euch machen?“ hätte das eventuell vermeiden können.

    Du hast interessante Vorstellungen von Entscheidungsprozessen und -befugnissen in größeren Firmen. ;)

    Ich stelle mir interessanterweise vor, dass die Presse-, Marketing- und Social-Media-Abteilungen in größeren Firmen Handlungsleitfäden für alle halbwegs erwartbaren Anfragen haben, anhand derer diese beantwortet werden.


    Nochmal: Gibt es dafür Beispiele? Also welches "Mensch ärgere dich nicht" wird legal und ohne Lizenz unter anderem usw. in der EU verkauft?! Die Behauptung wurde hier schon mehrfach aufgestellt, aber Beispiele fehlen.

    Nein, die Behauptung wurde hier immer noch nicht aufgestellt.

    Die Anzahl der ohne Lizenz legalen Mensch-ärgere-dich-nicht-Spiele entspricht der Anzahl der ohne Lizenz legalen Super-Mario-Spiele.

    Legal ist ohne Lizenz nur, was eben kein Mensch-ärgere-dich-nicht- oder Super-Mario-Spiel ist.

    Ein nicht-Mensch-ärgere-dich-nicht- oder nicht-Super-Mario-Spiel darf in jeder Rechtsordnung genau so viel kopieren, wie in genau der Rechtsordnung nicht geschützt ist und daher keiner Lizenz bedarf.


    Ist der Name geschützt, muss ein anderer her. Ist das Spielbrett geschützt, muss ein anderes her. Ist die konkrete Ausgestaltung der Spielregeln komplex genug für urheberrechtlichen Schutz und dieser besteht noch, dann muss die gleiche abstrakte Spielidee anders ausgestaltet werden.

    Wie anders es jeweils genau sein muss, ist Interpretationssache. Ein Anhaltspunkt ist, wie komplex der jeweilige Punkt ist und wie stark sich verschiedene Spiele des Genres in diesem Punkt üblicherweise unterscheiden.


    Zu Patentschutz bei Spielen fallen mir Pinball und Whack-A-Mole ein. Die komplexe Mechanik in den Spieltischen dürfte irgendwann einmal patentiert gewesen sein.

    Ein Beispiel für ein im Wesentlichen nur markenrechtlich geschütztes Spiel ist Ravensburgers Memory: Die Spielidee ist so primitiv, dass sie keiner weiteren Ausgestaltung bedarf, der Name „Memory“ ist aber eine eingetragene Wortmarke. Natürlich sind auch die konkreten Kärtchen urheberrechtlich geschützt, aber es würde wohl kaum jemand auf die Idee kommen, die einfach nachzudrucken.

    Da hast du dir ja gerade selbst eine mögliche Begründungen geliefert. ;)

    Ja. Und zwar dafür, dass die genannten Projekte nicht abgemahnt werden. Die achten nämlich peinlich genau darauf, mit Urheber- und Markenrecht nicht in die Quere zu kommen. Im Gegensatz dazu darf das nicht geschützte Spielprinzip dreist kopiert sein.


    Es gibt ja auch Fälle, wo Firmen gegen Fan-Seiten der eigenen Produkte vorgegangen sind. Da gab es ein bekanntes Beispiel. Mir fällt nur gerade die Firma nicht. :fp:

    Es ist davon ausgehen, dass diese Fanseiten urheberrechtlich geschützte Charaktere und/oder eingetragene Markennamen aus dem von ihnen verehrten Produkt ohne Genehmigung benutzt haben, was sowohl die Betreiber als auch den Rechteinhaber in eine blöde Situation bringt.

    Eine E-Mail ans Marketing nach dem Schema „Dürfen wir auf einer Seite mit dieser Aufmachung kostenlose Werbung für euch machen?“ hätte das eventuell vermeiden können.

    Du kannst einen Hobby-Programmierer nicht mit Sega gleich setzen. Sega hat selber Heerscharen von Anwälten, die evtl. Anfechtungen von Nintendo abgewehrt hätten. Deswegen wird Nintendo nichts unternehmen, wenn sie sich nicht gewissen Erfolgschancen ausrechnen.

    Von den genannten Beispielen stammt aber nur Sonic von einem Großkonzern.
    Super Tux, Super Tux Kart, Pingus und Pets Rescue sind deutlich näher an den jeweiligen Vorbildern, stammen von Hobbyprogrammieren und wurden nicht abgemahnt. Für was auch?

    Pets Rescue ist sogar ein kommerzieller Retro-Titel, aber geht eben, wie die anderen Beispiele auch, allen rechtlichen Problemen aus dem Weg.


    Weitere Beispiele sind Widelands, das im Grunde ein Siedler-II-Klon ist und 0AD, das offen dazu steht, stark von Age Of Empires inspiriert zu sein.

    Gerade die Großkonzerne sind zwar bei rechtmäßigen Abmahnungen flott dabei, weil sie mit ihrem Budget ihr geistiges Eigentum aggressiv verteidigen können, haben aber andererseits einen Ruf zu verlieren, was unseriöse Abmahnungen auf ein Minimum begrenzt.


    Außerdem impliziert schnelles Abmahnen nicht zwingend eine Feindseligkeit gegenüber Hobbyprogrammierern.

    Je nach Rechtsordnung muss der Inhaber einer Marke diese nämlich nicht nur benutzen, sondern seine Rechte auch durchsetzen, weil sonst sein Anspruch auf exklusive Nutzung der Marke flöten geht.

    Ich finde, das ist ein sehr interessantes Thema !! Diesbezüglich habe ich mich schon immer gefragt, wie das zB in der Homebrewszene gehandhabt wird. Letztens Endes ist Joe´s Spiel ja nichts anderes. Was passiert, wenn heute jemand zB eine verbesserte Version von Donkey Kong "auf den Markt" bringt. Ich kann mir ja fast nicht vorstellen, dass da jeder eine Lizenz von Nintendo hat. Und gerade Nintendo ist ja sehr dafür bekannt, dass man nicht lange fackelt, eine Klage ein zu reichen... Eine Lizenz zu bekommen ist mit Sicherheit auch mit Kosten verbunden - also warum sollte jemand für teuer Geld da eine Lizenz kaufen, um anschließend das Werk kostenlos zu verteilen ?!

    Dazu vielleicht ein paar Beispiele:


    SEGA wollte einen Konkurrenten für Super Mario haben und hat Sonic The Hedgehog gebaut. Das hat ein sehr ähnliches Spielprinzip, ist aber sowohl namentlich als auch bildlich nicht Mario.

    Damit gab es folglich trotz des großen Erfolges keine rechtlichen Probleme.


    Mit Super Tux wurde Super Mario quasi 1:1 nachgebaut. Auch hier ist aber kein Mario zu finden und es gab keine Probleme. Das gleiche gilt für Super Tux Kart. Abseits von nachgeahmten Nintendo-Spielen gibt es noch Pingus, einen 1:1-Abklatsch von Lemmings, der die Lemminge durch Pinguine austauscht.


    Im Gegensatz dazu wurde der Mensch, der vor ein paar Jahren Super Mario auf den C64 portiert hatte, sofort von Nintendo verklagt, obwohl der Port keinerlei Auswirkungen auf Nintendos Umsatz gehabt hätte. Grund: Der Port hat die Grafiken weitgehend übernommen und es hüpfte ein fröhlicher Mario drin herum.


    Die Autoren von Pets Rescue wiederum wollten Mario für den Commodore Plus/4 bauen, haben aber die rechtlichen Probleme vorausgesehen und sind ihnen ausgewichen: Man spielt keinen Klempner italienischer Abstammung sondern eine Tierärztin afrikanischer Abstammung. Das Spielprinzip ist weiterhin 1:1 kopiert. Bloß befreit man hier jetzt durch Gentechnik-Experimente zu Monstern mutierte Haustiere, indem man auf sie drauf springt. – Höchst vertraut, aber unproblematisch.


    Im großen und ganzen deckt sich das alles mit der hier schon umfangreich erörterten Rechtslage.

    Einfach das „a:“ weglassen und stattdessen ein „-i floppy.img -C“ nehmen.

    Das „-i“ kriegt den gewünschten Dateinamen mit und das „-C“ sorgt dafür, dass die Datei erstellt wird, wenn sie noch nicht existiert.

    Muss die "Diskette" Test.img vorher formatiert werden, oder so? FAT12 oder FAT16?

    Wenn das ein Image einer Diskette ohne Dateisystem ist, kann man da schwerlich Dateien drauf schreiben.

    Ein passender Aufruf von mformat sollte in dem Fall Abhilfe schaffen.

    Benedikt : Wie sähe denn dann so eine Zeile aus, wenn ich z.B. eine .EXE-Datei auf ein Image in Laufwerk A: kopieren möchte?

    Habe von Mtools echt null Ahnung, sorry.

    Etwa so:
    mcopy -i floppy.img ./FOO.EXE ::FOO.EXE


    Wenn es tatsächlich auf den Laufwerksbuchstaben „A“ ankommt, muss man das erst in der Konfigurationsdatei einrichten.
    Bei Disketten ist das aber eigentlich Blödsinn.

    Etwas andere Frage: Ich habe mir jetzt mit PCem eine .img_floppy erstellt. Wie bekomme ich denn da nun Dateien drauf, um sie auf dem Emulator zu installieren?

    Ich nehme dafür die GNU Mtools.

    Das sind Programme wie mformat, mdir, mcopy etc., denen man mit dem Parameter "-i" oder einer Konfigurationsdatei die Imagedatei mitgibt.

    In der Konfigurationsdatei kann man Laufwerksbuchstaben vergeben, während das implizit durch "-i" definierte Laufwerk mit "::" angesprochen wird.


    Auf was für einem Betriebssystem arbeitest du denn?