Software > Software (16-/32-Bit)
Software/Programme für Rommodul anpassen/patchen ...
Lukas Frank:
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 ...
Thorsten Otto:
Der start für ein cartridge modul sieht etwa so aus:
--- Code: ---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
--- Ende Code ---
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.
Lukas Frank:
Aber Programmieren ist ja nicht. Ich möchte fertige Programme patchen ...
-> https://sites.google.com/site/stessential/system-tools/sysinfo
czietz:
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
Thorsten Otto:
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.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln