Autor Thema: Software/Programme für Rommodul anpassen/patchen ...  (Gelesen 7493 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.487
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Software/Programme für Rommodul anpassen/patchen ...
« am: Do 30.05.2019, 09:50:49 »
Wenn ich zum Beispiel das Engliche Sysinfo anpassen will das es von den Eproms läuft muss ich was und wie machen?

Ich weiss das Programm braucht ein MagiC Word im Programm Kopf und es darf kein GEM brauchen oder ein RSC haben oder andere Sachen nachladen wollen.

An welche Stelle muss ich so ein Magic Word einfügen? Und wie sieht das Magic Word aus? Wenn ich im Programmcode etwas ändere stimmt doch die Prüfsumme nicht mehr, oder?

Wie Teste ich das in Hatari?


Fragen über Fragen ...

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.316
Re: Software/Programme für Rommodul anpassen/patchen ...
« Antwort #1 am: Do 30.05.2019, 10:19:18 »
Der start für ein cartridge modul sieht etwa so aus:

cart_beg:
dc.l 0xabcdef42
dc.l 0                   | next program header (0 = no other program)
dc.l init+0x08000000     | cartridge init (24 bit, upper byte = type)
dc.l start               | program to execute
dc.w 0                   | time (unused)
dc.w 0                   | date (unused)
dc.l cart_end-init       | calculated program length
.ascii "UNIXDISK.ROM"
dc.w 0
init:
        hier gehts los

Der init: code wird beim booten ausgeführt. Das oberste byte gibt dabei an, wann genau (in diesem Fall bit 3 gesetzt, dh. nach GEMDOS Initialisierung). Der code der bei start: steht wird vom Desktop als normales Programm gestartet, und darf auch einfach rts sein.

In Hatari testen kannst du es, indem du das fertige image dort als ROM-Cartridge anmeldest. Da die GEMDOS-Emulation aber auch als Cartridge ausgelegt ist, darf die in diesem Fall nicht aktiv sein.

Im übrigen musst du natürlich generell schauen was das Programm macht. Wenn es bss benötigt, musst du es irgendwie so linken, daß das bss-segment im normalen RAM liegt. Wenn das Data-segment geändert wird, gilt dafür das gleiche, zusätzlich musst du es irgendwie vom ROM ins RAM kopieren. Ansonsten hängt einiges davon ab welchen Linker du benutzt, Pure-C zb. erzeugt immer einen Programm-Header, den du dann wieder entfernen musst.

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.487
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: Software/Programme für Rommodul anpassen/patchen ...
« Antwort #2 am: Do 30.05.2019, 10:26:37 »
Aber Programmieren ist ja nicht. Ich möchte fertige Programme patchen ...

->   https://sites.google.com/site/stessential/system-tools/sysinfo

Offline czietz

  • Benutzer
  • Beiträge: 3.700
Re: Software/Programme für Rommodul anpassen/patchen ...
« Antwort #3 am: Do 30.05.2019, 10:31:15 »
https://www.chzsoft.de/site/hardware/diverse-kleinigkeiten-fur-den-atari-st/#normale-tos-programme-als-rom-cartridge

Aber beachte: "Der Loader kopiert beim Start das Programm aus dem ROM ins RAM und richtet auch sonst alles ein, als sei das Programm normal von Diskette oder Festplatte gestartet worden." Wie Thorsten schon schrieb, müsste ein Programm neu gelinkt werden, wenn Du den Code direkt aus dem ROM ausführen willst.

Exxos hat mein oben genannten Programm benutzt, um zusätzliche Software auf sein ROM-Testmodul zu bekommen. EDIT: https://www.exxoshost.co.uk/atari/last/storenew/#0165
« Letzte Änderung: Do 30.05.2019, 11:32:51 von czietz »

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.316
Re: Software/Programme für Rommodul anpassen/patchen ...
« Antwort #4 am: Do 30.05.2019, 11:35:06 »
Wie Christian schon schrieb: enfach nur patchen wird nicht funktionieren, "normale" Programme sind einfach nicht dafür ausgelegt, direkt aus dem ROM zu laufen. Da wird wohl nur helfen, seinen Loader zu verwenden. Und auch das wird nicht mit jedem Programm funktionieren, dieses "c"-Laufwerk wird lediglich vom Desktop verwaltet, und ist über GEMDOS nicht zu erreichen.

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.487
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: Software/Programme für Rommodul anpassen/patchen ...
« Antwort #5 am: Do 30.05.2019, 12:04:26 »
Jetzt weiss ich mehr, vielen Dank.

Offline ari.tao

  • Benutzer
  • Beiträge: 2.248
  • Gesperrter User
Re: Software/Programme für Rommodul anpassen/patchen ...
« Antwort #6 am: Do 30.05.2019, 12:40:28 »
Beim Pätschen fertiger Programme kommt es sehr auf den Einzelfall an. Solange die Code-Länge unverändert bleibt, sind ggf. lediglich CheckSums anzupassen: Das erfordert bloß etwas Rechnerei im hexadez. Zahlsystem (und natürlich die Kenntnis der Stelle, wo die Prüfsumme sitzt). Typisches Bsp.: Der Code im BootSektor. Muß dabei etwas gekürzt werden, kann man je nachdem mit 00en oder NOPsen auffüllen. Ist es nicht möglich, mit welchem Trick auch immer, die CodeLänge beizubehalten, weil zB. ein längeres Stück hinzugefügt werden soll, dann wird es deutlich schwieriger: Man muß mittels Sprüngen den Code hintenanfügen und den Prg.-Header entsprechend anpassen. Das ist nur etwas für erfahrene Asseln.
Falcon+ddd32MHz, TT+CrazyDotsGK und noch ein paar andere.

Offline Petari

  • Benutzer
  • Beiträge: 156
Re: Software/Programme für Rommodul anpassen/patchen ...
« Antwort #7 am: Do 30.05.2019, 13:46:16 »
Idee über einige SW, was ist kodiert vor laufen im RAM zum laufen von ROM - cartridge, oder andere ROM ist einfach schlecht. Haupt Grunde ist das normal SW hat viele schreiben im mittel von code. Dann, durschnittlich SW macht laden von disk. Aber es ist nicht möglich zu Laden normal GEMDOS Deteien von cartridge über regular TOS Funkzionen.
Nur wann SW ist: mit Quelle - dann kann modifizieren Teilen wo Variablen (Schreib) sind - und plazieren im RAM . Wechseln Datei Laden.  Und ja, das ist immer sehr viel Arbeit.

Aber, es ist möglich, viel einfacher:  nicht laufen SW von cart. ROM, aber wie normal, von RAM.  Datei Quelle ist im cartridge ROM - best einpakt (komprimiert), und dann kann auspaken im RAM und laufen wie normal TOS exec.  Kann machen ROM disk für weitere Dateien.  ich habe alles es gemacht.

Beispiel: http://atari.8bitchip.info/cartST.html
Na ja ...