atari-home.de - Foren

Hardware => Hardware (Classic 16-/32-Bit) => Thema gestartet von: czietz am Di 29.12.2015, 12:13:52

Titel: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Di 29.12.2015, 12:13:52
Hallo,

manchmal, z.B. um den fiesen Bug in http://forum.atari-home.de/index.php?topic=12577.0 (http://forum.atari-home.de/index.php?topic=12577.0) zu finden, wünsche ich mir die Möglichkeit, sehr früh im Bootprozess des ST eigenen Code ausführen zu können. Mit einem Cartridge für den ROM-Port ist das machbar, da TOS zu verschiedenen Zeitpunkten im Bootprozess versucht, ins Cartridge zu springen.

Ein klassisches ROM-Modul mit zwei (E)EPROMs fände ich jedoch eher störend, weil ich a) dafür ein EPROM-Programmiergerät anschaffen müsste und b) für jede Codeänderung die ICs aus den Sockeln heben müsste. Ideal wäre ein Cartridge, das sich über eine Schnittstelle (USB, RS232, SPI, JTAG...) neu programmieren ließe.

Kennt jemand schon eine Schaltung dafür?
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: tuxie am Di 29.12.2015, 12:16:55
Man könnte doch ein Flash drauf setzen und ihn versuchen darüber zu Programmieren?
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lukas Frank am Di 29.12.2015, 12:23:34
Vielleicht läßt sich sowas in der Art anpassen ->   http://www.8bitchip.info/atari/flashest.php

Muss ja nicht im Romport sitzen, einfach ROM 3 und 4 anlegen ...
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Di 29.12.2015, 12:47:12
Eine Lösung wie von Frank vorgeschlagen, müsste sogar zwangsläufig im Atari sitzen, denn einerseits muss man Adressdecoder und DTACK-Logik nachrüsten, damit beim Schreib-/Programmierzugriff auf den Adressbereich des ROM-Ports kein Bus-Error durch den GLUE generiert wird. Andererseits ist die R/W-Leitung, die zum Erkennen eines Schreibzugriffs nötig wäre, gar nicht am ROM-Port herausgeführt -- ein (bewusster?) Designfehler im ST, meiner Meinung nach.

Eine komplett externe Lösung wäre mir lieber.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lukas Frank am Di 29.12.2015, 12:52:17
Als reines Romport Modul stelle ich mir das ohne Ahnung sehr kompliziert vor mit zwei Flash Bausteinen. Mit Tricks wird ja auch bei der EtherNEC oder der baugleichen NetusBee auf/über dem Romport geschrieben ...
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Di 29.12.2015, 12:59:56
Es ist ja keine Voraussetzung, dass das Ding vom Atari aus beschreibbar ist. Ich wäre mit einer externen Schnittstelle zum PC ebenso zufrieden. Es wird dafür natürlich zusätzliche Logik oder ein Mikrocontroller auf dem Modul benötigt.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lukas Frank am Di 29.12.2015, 14:00:26
Schau doch mal im NetusBee Schaltplan und dem Treiber wie dort das mit dem R/W gemacht wird ->   http://hardware.atari.org/files/

Das muss doch auch alles von Atari ST aus gehen mit ein wenig Logik auf dem Romport Modul ...


Ansonsten kaufe dir über Ebay für etwas über 40,- Euro einen China Prommer und nimm einfach zwei EEproms ...

Habe auch so einen Prommer für die GALs und bin sehr zufrieden damit !
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Burkhard Mankel am Di 29.12.2015, 14:58:45
Es gab mal eine Erweiterung für den ROM-Port als Bauanleitungs-Serie in der ST-Computer vor 1990! Leider kann ich mich an den Titel nicht mehr erinnern! Leider konnte ich sie auch in den von Matthias Jaap zusammengestellten Archiven nichts darüber finden, aber vielleicht könnte man hier einen Ansatzpunkt finden, da sie auch eine (nichtflüchtige) RAM-Karte enthielt - und RAM heißt für mich "beschreib-" und "programmierbar"!
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lynxman am Di 29.12.2015, 16:30:48
Ein Atmega, 2 FlashRoms, dazu einen FT232 oder einen Max232 (je nach Geschmack, oder gleich beides mit einem Atmega der 2x RS232 hat), dazu ein paar Treiber um den Bus (bzw. beide) zu trennen wenn die Flashs beschrieben werden, dann kann die Karte gesteckt bleiben.
Evtl. noch ein oder zwei Latch, je nach Schaltung und Atmega.
Klar, den Atmel muss man noch Programmieren...
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Arne am Di 29.12.2015, 16:32:52
Es ist ja keine Voraussetzung, dass das Ding vom Atari aus beschreibbar ist. Ich wäre mit einer externen Schnittstelle zum PC ebenso zufrieden. Es wird dafür natürlich zusätzliche Logik oder ein Mikrocontroller auf dem Modul benötigt.
Im Prinzip brauchst Du einen EPROM Simulator. 128KByte SRAM kosten nicht die Welt und sind einfach ansteuerbar. Es muss halt gewährleistet sein, dass der Simulator (µC o.ä.) die Busse loslässt, wenn der Atari davon lesen will. Ein ATmega im TQFP-100/64 Gehäuse sollte genug Pins freihaben.

Ansonsten mal nach EPROM Simulator suchen
z.B. http://www.holger-klabunde.de/eprsim/eprsim.htm (http://www.holger-klabunde.de/eprsim/eprsim.htm)
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: neogain am So 03.01.2016, 18:18:03
Mal gerade entdeckt... Kann man das Layout hier (http://www.atari-forum.com/viewtopic.php?t=14086) nicht holen für ein Testcartrigde nachbau?
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am So 03.01.2016, 19:43:17
Danke für die Ideen! Schade, dass es nichts passendes schon fix und fertig gibt. Sollte ich mal genug Zeit haben, layoute und baue ich mir etwas selbst.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Sa 06.02.2016, 20:12:37
Ich habe mich dann übrigens mal mit dem Design begonnen. Schaltplan war schnell gezeichnet, leider bin ich echt schlecht, was das Layouten angeht...
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lynxman am Sa 06.02.2016, 20:15:29
Wie willst Du das jetzt realisieren?

Das Modul vom Atari oder vom PC aus programmieren?
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Sa 06.02.2016, 20:21:31
Vom PC aus. Ein AVR ATmega klimpert dazu an den Flash-Bausteinen, um sie neu zu programmieren.

Ursprünglich wollte ich Bustreiber vorsehen, um den Bus vom Atari zu isolieren, damit der AVR auch auf das Flash-ROM zugreifen kann, wenn das Modul im Atari steckt. Aber ich bin beim Versuch, das zu layouten, fast durchgedreht. Wie gesagt, ich bin nicht besonders geübt darin. Jetzt arbeite ich an einer vereinfachten Variante, bei der AVR nur erkennt, dass das Modul am Atari hängt und sich dann ruhig (alle I/O-Ports tristate) verhält. Zum Neuprogrammieren muss man das Modul halt aus dem Atari ziehen.

Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lynxman am Sa 06.02.2016, 20:28:44
Welchen Atmega benutzt Du?

Wenn Du einen Atmega mit Speicherinterface benutzt, dann kennst Du evtl. schon das Problem das der Atmega erst mal sein internes SRAM beschreibt und danach dann Extern.
Wenn nicht, dann kann ich Dir ein paar Tipps geben, das hat mich nämlich mal fast Irre werden lassen bis ich es hinbekommen habe.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Sa 06.02.2016, 20:45:04
Ich hatte an sowas wie einen ATmega16 gedacht, da ich es geschafft habe, mit 32 GPIOs auszukommen. Also kein externes Speicherinterface, sondern "bit banging" auf den I/O-Ports.

Auch wenn es also hier nicht relevant ist, würde ich gerne mehr über das von Dir erwähnte Problem erfahren.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lynxman am Sa 06.02.2016, 21:04:36
Beim Atmega16 musst Du ja quasi die Steuerleitungen, Adressen und Daten "von Hand" erzeugen und kannst damit auf den vollen Speicherbereich zugreifen. Das stellt kein Problem dar.

Bei den Atmegas mit Speicherinterface, z.B. Atmega162 kannst Du den externen Speicher ganz bequem wie das interne SRAM ansprechen, die Steuerleitungen, Adressen und Daten (multiplexen) macht der AVR dann selber.
Das Problem ist allerdings das die ersten x-Byte (größe SRAM) nicht nach aussen angesprochen werden.

Wenn man aber den ganzen externen Speicherbereich ansprechen will, muss man die A15 ausblenden (über ein Register) und die A15 "von Hand" setzen.

Man teilt also den Externen Speicher in 32KB Bänke auf die aus Sicht des µCom im Speicherbereich 8000 - FFFF liegen.
Wie schon geschrieben, Adressleitungen ab A15 muss man eben selber setzen.

Aber da der AVR sowieso nur bis 64KB extern Hardwareseitig unterstützt muss man bei >64KB sowieso das Bankswitching selber machen.

Die A15 kann man übrigens ganz einfach am entsprechenden Portpin anschließen.
Mit dem deaktivieren der A15 des Speicherinterrfaces ist dieser Pin ein ganz normaler I/O.

Etwas anders muss man bei den alten AT90S-Typen wie dem AT80S8515 vorgehen.
Da man hier die A15 nicht per Register deaktivieren kann, muss man einen zusätzlichen Portpin opfern an dem die A15 angeschlossen wird.
Programmiertechnisch dann das selbe, 8000 - FFFF und die Bänke "von Hand".

Das Speicherinterface zu benutzen spart ein wenig Platz im Flash ein und ist schneller.
Ist eben die Frage welche Optionen des µCom man braucht und ob man die Zeit (Programmgeschwindigkeit) hat das Speicherinterface "von Hand" zu implementieren.

Aber mit dem Atmega16 kann man auch 115200 Baud erreichen wenn man einen Flash beschreibt.
z.B. 29F010
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am So 07.02.2016, 20:04:48
Uff, so, es ist vollbracht. Heute Nacht werde ich wohl von Leiterbahnen träumen.  :D

Ich habe das Layout mal bei einem chinesischen Leiterplattenlieferanten eingekippt, den ich schon immer mal testen wollte. Nachteil: Aufgrund des chinesischen Neujahrfestes und der Lieferzeit werde ich erst in gut einem Monat wissen, ob es auch läuft. Aber ich kann solange ja mit dem Programm für den ATmega anfangen.

Da der Leiterplattenlieferant eine Mindestabnahmemenge hat und mich außerdem dort 10 Leiterplatten weniger kosten als eine einzelne in Deutschland gefertigte, werde ich Platinen übrig haben. Wenn das Modul tatsächlich so funktioniert, wie ich es mir ausgedacht hatte, kann ich mir vorstellen, die Platinen mehr oder weniger zum Selbstkostenpreis weiterzuverkaufen; Interesse vorausgesetzt. Ich werde berichten...
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lynxman am So 07.02.2016, 20:07:41
Machs nicht so spannend!

Welcher China-Mann darf es denn fertig?

Screenshots vom Layout?  :)

Welche FlashRoms setzt Du ein?
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am So 07.02.2016, 21:50:09
Seeed ist der Laden, den ich ausprobieren wollte, nachdem er mir empfohlen wurde. Flash-ROMs sind 29F010 geworden, auch wenn die nicht (mehr) so leicht zu beschaffen sind, weil ich zumindest einen davon schon da habe...

µC ist jetzt übrigens doch ein ATmega8515 geworden, nicht wegen des Speicherinterfaces (das ich nicht benutze) sondern weil bei näherem Nachdenken meine Idee, um GPIOs zu multiplexen doch nicht so schlau war und ich somit alle 35 GPIOs brauche.

Layout ist hier:
(http://forum.atari-home.de/index.php?action=dlattach;topic=12584.0;attach=10465;image)
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lynxman am So 07.02.2016, 21:53:55
Dann bin ich mal gespannt.  8)
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am So 07.02.2016, 21:58:27
Ich auch.  :)

Ich bin übrigens stolz, dass ich als "Layout-Unbegabter" es geschafft habe, das alles von Hand zu routen. Der EAGLE-Autorouter stellte sich nämlich noch dümmer an als ich.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lynxman am So 07.02.2016, 22:04:51
Die Autorouter die bei Programmen wie Eagle oder Target mitgeliefert werden sind nicht so toll.
Einen Autorouter muss man auch konfigurieren und dazu gehört viel Erfahrung und das wissen wie diese funktionieren.
Ich Route immer von Hand, der Autorouter von Target macht keine tollen Designs. Ich habe mich aber auch noch nicht wirklich damit auseinandergesetzt.

Dein Layout sieht gut strukturiert aus. Klar, man kann jetzt meckern wegen 90°-Ecken, aber bei den Frequenzen ist das Wurst.

Der Atmega läuft mit internem Takt?
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am So 07.02.2016, 22:24:35
Dein Layout sieht gut strukturiert aus. Klar, man kann jetzt meckern wegen 90°-Ecken, aber bei den Frequenzen ist das Wurst.

Ich habe schon HF-Schaltungen bei 3 - 10 GHz gelayoutet. Die waren deutlich weniger komplex, was die Anzahl der zu verlegenden Leiterbahnen angeht, dafür hat muss man da natürlich viele andere Dinge berücksichtigen. Dort schrägt man die Ecken ja an (miter), um den Wellenwiderstand beizubehalten und Abstrahlung zu verhindern. Gibt's sonst noch Gründe? Aber wie Du sagst, bei den Frequenzen im Atari ist das egal.

Wie ist eigentlich das Timing am Cartridge-Port? RAM-Zugriffe der CPU können beim ST ja soweit ich weiß ja nur alle 4 Taktzyklen (also mit 2 MHz) ausgeführt werden, weil der Shifter noch dazwischen kommen muss. Wie ist das mit ROM-Zugriffen?

Der Atmega läuft mit internem Takt?

Ja. Das ist zugegebermaßen kein ganz tolles Design, weil der Takt damit ja von der Temperatur abhängt, aber ich denke, es wird gehen. Notfalls muss ich irgendwie einen Quarz anfädeln, Platz ist in der Nähe der XTAL-Pins des AVR ja da.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: neogain am So 07.02.2016, 22:26:55
Das sieht doch gut aus. Die DIP AM29F010 werden leider immer seltener. Deswegen setze ich auf die PLCC Variante. Bei Ebay und sogar bei Reichelt bekommste die noch. hab mir mal vor monaten für 1€ das stück bei ebay geschossen und reichelt hat die auch noch für 2,40€ das Stück. Bei dem Pofo Adapter nutze ich auch die PLCC Variante. Dasselbe auch bei den AM29F040er Typen. Habe die auch sehr günstig bei Ebay geschossen. Aber ich tue mich schwer, dass Ganze in Eagle zu routen zusammen mit IDE. Autorouter habe ich nach 3 Versuchen aufgegeben und mache seitdem nur noch alles per Hand. Da weiß man wenigstens, was man hat. Problem wo ich immer habe sind die Luftlinien, die Eagle vorgibt. Wenn ich z. B. einen kondensator (100nF) nahe dem IC bringen will, ist die Luftlinie beim routen komischerweise in einer komplett anderen Ecke, was mich stetig verzweifeln lässt. Wenn man doch nur einfach so die Bahnen ziehen könnte wäre ich schon lange damit fertig.

KiCAD soll eine ganz brauchbare Alternative sein, das bin ich mir gerade am anschauen.

Man könnte doch dein Layout auch für ein Testcartrigde verwenden?
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am So 07.02.2016, 22:34:11
Ja, wenn man nur ein Diagnose-Cartridge haben möchte und einen EPROM-Brenner hat (den ich nicht habe), kann man sogar auch andere pin-kompatible UV-EPROMs oder Flash-ROMs nehmen und den ATmega gar nicht erst bestücken. Evtl. muss man stattdessen eine Drahtbrücke setzen.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Arne am So 07.02.2016, 22:36:54
Gibt's sonst noch Gründe?
Ja, gibt es wohl. Neulich gelesen, dass LS-Lack da wohl nicht immer reinfließt oder sich "Seen" bilden.
Ich arbeite nie mit 90° Winkeln.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lynxman am So 07.02.2016, 22:42:41
Ich habe schon HF-Schaltungen bei 3 - 10 GHz gelayoutet. Die waren deutlich weniger komplex, was die Anzahl der zu verlegenden Leiterbahnen angeht, dafür hat muss man da natürlich viele andere Dinge berücksichtigen. Dort schrägt man die Ecken ja an (miter), um den Wellenwiderstand beizubehalten und Abstrahlung zu verhindern. Gibt's sonst noch Gründe? Aber wie Du sagst, bei den Frequenzen im Atari ist das egal.

Der Lötstoplack soll bei 90° probleme machen können. An der äußeren Ecke zu wenig, habe ich aber noch nie gesehen.
Ästhetik wäre auch noch ein Grund, aber das liegt im Auge des betrachters. ;)
Dein Layout sieht aufgräumt aus, also von der Seite aus finde ich es gelungen. :)

Wie ist eigentlich das Timing am Cartridge-Port? RAM-Zugriffe der CPU können beim ST ja soweit ich weiß ja nur alle 4 Taktzyklen (also mit 2 MHz) ausgeführt werden, weil der Shifter noch dazwischen kommen muss. Wie ist das mit ROM-Zugriffen?

So weit ich weis ist der ROM-Zugriff auch nicht schneller als ins RAM. Also unkritisch.

Ja. Das ist zugegebermaßen kein ganz tolles Design, weil der Takt damit ja von der Temperatur abhängt, aber ich denke, es wird gehen. Notfalls muss ich irgendwie einen Quarz anfädeln, Platz ist in der Nähe der XTAL-Pins des AVR ja da.

Das wird man sehen.  ;)

Das sieht doch gut aus. Die DIP AM29F010 werden leider immer seltener. Deswegen setze ich auf die PLCC Variante.

Ich verwende auch gerne die PLCC.

Problem wo ich immer habe sind die Luftlinien, die Eagle vorgibt. Wenn ich z. B. einen kondensator (100nF) nahe dem IC bringen will, ist die Luftlinie beim routen komischerweise in einer komplett anderen Ecke, was mich stetig verzweifeln lässt. Wenn man doch nur einfach so die Bahnen ziehen könnte wäre ich schon lange damit fertig.

??? Das verstehe ich jetzt nicht. OK, ich nutze Eagle nicht weil mir die Bedienung nie gefallen hat.
Bei Target sehe ist die Luftlinie und dann lege ich die Leitung wie ich Lustig bin.

KiCAD soll eine ganz brauchbare Alternative sein, das bin ich mir gerade am anschauen.

Vor allem Kostenlos.
Für mich kommt zwar die nächsten Jahre kein umstieg in Frage, aber berichte doch mal wenn Du ein Projekt damit gemacht hast.

Man könnte doch dein Layout auch für ein Testcartrigde verwenden?

Ich denke da spricht nichts dagegen. Die Testcartridges habe kein Bankswitching, das sind einfach ROM-Carts, da sollte ja egal sein was man in die FlashChips schreibt.

BTW. Hat jemand ein Tool mit dem ich ein ROM-Set erstellen kann?
Ich würde gerne ein paar Proggis auf einer ROM-Cart haben.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: 1ST1 am So 07.02.2016, 22:52:06
Zitat
RAM-Zugriffe der CPU können beim ST ja soweit ich weiß ja nur alle 4 Taktzyklen (also mit 2 MHz) ausgeführt werden, weil der Shifter noch dazwischen kommen muss.

Das ist falsch, der 68000er kann im ST mit vollen 8 MHz aufs RAM zugreifen, der Shifter auch, ohne sich gegenseitig zu bremsen. Die nutzen die verschiedenen Flanken des Taktsignals.

Das verwechselst du mit dem Chipram beim Amiga, aber selbst dort ist das nicht so krass.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am So 07.02.2016, 23:09:11
1ST1, dann verstehe ich das wohl falsch: http://pasti.fxatari.com/68kdocs/AtariSTCycleCounting.html (http://pasti.fxatari.com/68kdocs/AtariSTCycleCounting.html):

Zitat
Bus cycles on the 68000 take a minimum of four clock cycles. But most of the time during a bus cycle is spent for control and handshake. And RAM at the time was fast enough to perform an access cycle in half that time. So the ST interleaves CPU and Video access to RAM, two clock cycles for each.
[...]
The MMU allocates two clock cycles for each type of RAM access, in a round-robin fashion. Two clock cycles for “internal”, and two for “external” access.

Danach wäre es für's RAM beinahe so wie in meiner Erinnerung. RAM-Zugriffe finden alle 2 Taktzyklen statt (mit 4 MHz), die CPU kommt aber nur alle 4 Taktzyklen (mit 2 MHz) zum Zug.





Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: 1ST1 am Mo 08.02.2016, 14:30:45
Schau mal hier rein: http://www.atariprofibuch.de/ATARI%20Profibuch%20ST-STE-TT.pdf - Seite 836, leider nicht ausführlich, dort steht aber zumindestens dass die Shifter- und CPU-Zugriffe zeitlich miteinander verzahnt sind. Genauer findet man es im Vorstellungsartikel zum ST aus der c't im Jahr 1985. http://www.heise.de/newsticker/meldung/Sensationell-PC-Schreck-Atari-ST-wird-30-Jahre-alt-2690017.html?hg=1&hgi=3&hgf=true (auf die Seite blättern, wo das Oszidiagramm gezeigt wird, das isses, plus Text auf der selben Zeit.)
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Mo 08.02.2016, 17:49:05
Klar, Shifter und CPU greifen zeitlich versetzt aufs RAM zu. Das steht ja auch im Zitat, das ich von der genannten Webseite gebracht hatte.

Nur greifen sie halt nicht mit jeweils 8 MHz zu. Das von Dir in der c't gefundene Oszillogramm belegt ja, was ich bloß im Hinterkopf hatte. Shifter und CPU kommen jeweils alle 500ns (im Plot die Kästchen zählen) zum Zug, greifen also jeweils mit 1/500ns = 2 MHz aufs RAM zu, insgesamt muss das RAM also Zugriffe mit 4 MHz verkraften.

Ich nehme an, die Zugriffszeit gilt fürs ROM genauso, nur dass da alle Zugriffe von der CPU kommen...

EDIT: Möglicherweise reden wir aneinander vorbei. Du hast natürlich Recht, dass die Shifter-Zugriffe die CPU (in der Regel) nicht ausbremsen. Nur liegt das nicht daran, dass beide mit 8 MHz auf das RAM zugreifen können, sondern daran, dass der MC68000 selbst ohne Shifter in den meisten Fällen nur alle 4 Taktzyklen einen Buszugriff machen würde und somit auch ohne Shifter über die 2 MHz Speicherzugriffstakt nicht hinaus käme. Das ist wichtig, um die Zugriffszeiten der verwendeten Speicher korrekt zu wählen.

Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Arne am Mo 08.02.2016, 18:05:39
Nur greifen sie halt nicht mit jeweils 8 MHz zu.
Warum hängst Du Dich eigentlich so starr an einer Taktrate auf? Du hast es hier mit einem asynchronen Bus zu tun. Wenn da ein DIVS/DIVU geladen wird, tut sich erstmal eine Zeitlang nix auf dem Bus.
Ein NOP hingegen braucht 4Takte IIRC.

Das ist wichtig, um die Zugriffszeiten der verwendeten Speicher korrekt zu wählen.
Wenn es Dir ums Flash geht: da reichen 200ns problemlos. So langsame wirst Du vermutlich nicht finden. Im Testkit habe ich 120ns und 100ns, weil ich langsamere gar nicht bekommen habe.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Mo 08.02.2016, 18:15:39
Wenn es Dir ums Flash geht: da reichen 200ns problemlos. So langsame wirst Du vermutlich nicht finden. Im Testkit habe ich 120ns und 100ns, weil ich langsamere gar nicht bekommen habe.

Das ist doch mal eine Aussage. Danke schön!  :)
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Arne am Mo 08.02.2016, 18:29:13
Das ist doch mal eine Aussage. Danke schön!  :)
LOL   :D
Warum fragst Du nicht direkt?
Im ST habe ich als EPROMs schon 250ns fürs TOS und sogar 170ns fürs RAM gesehen.
TOS oder ROM-Port macht keinen Unterschied, da das /DTACK beidesmal von einem ASIC kommt und die /ROMx Signale vom selben ASIC erzeugt werden. Der Rest ist ja der async. 68k Bus.

Mich hat verwundert, dass Du an der Taktrate klebst, da Du ja auch vom Fach bist.  ???
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Mo 08.02.2016, 22:29:48
Die DIP AM29F010 werden leider immer seltener.

Basierend auf einem schnellen Blick ins Datenblatt dürfte der SST39SF010A kompatibel sein. Der ist auch in DIP32 noch recht problemlos (Conrad, Farnell, Digikey etc.) erhältlich.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lynxman am Mo 08.02.2016, 22:56:02
Die DIP AM29F010 werden leider immer seltener.

Basierend auf einem schnellen Blick ins Datenblatt dürfte der SST39SF010A kompatibel sein. Der ist auch in DIP32 noch recht problemlos (Conrad, Farnell, Digikey etc.) erhältlich.

Und hat den Vorteil das er wesentlich schneller löscht.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Mi 16.03.2016, 22:08:36
So, Platine ist endlich da und auch schon bestückt. Funktioniert offenbar, kein grundsätzlicher Designfehler.  :D Auch wenn ich das Programm noch nicht fertig habe, um Daten vom PC ins Flash laden zu können und der ATmega daher nur ein Testpattern ins Flash schreibt.

Allerdings bin ich beim Flash-Kauf böse reingefallen und habe z.Zt. eine Mischbestückung mit einem IC AM29F010 und einem AM29F010B. Bei letzterem steht im Datenblatt zwar "Compatible with Am29F010", aber das bezieht sich (mal wieder) nicht auf den Programmieralgorithmus, sodass ich diesen Flash-Baustein nur mit SW-Anpassung programmieren könnte. Ärgerlich, ich werde das IC wohl tauschen.

Ein bisschen Optimierungsbedarf für das B-Muster ;) habe ich auch noch gefunden: Ich habe den Leiterplattensteckverbinder, der in den ROM-Port kommt, etwas zu schmal gemacht, sodass man aufpassen muss, dass das Modul auch richtig zentriert ist, damit es Kontakt hat. Vielleicht klebe ich da kleine Abstandshalter an die Platinenkanten, um das zu beheben.

Ich werde berichten, wenn ich soweit bin, das Modul auch vom PC aus programmieren zu können.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Mi 16.03.2016, 22:24:00
PS: ...
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: tuxie am Mi 16.03.2016, 22:52:43
Könnte man dies als Bootmedium verwenden um Bestimmte dinge da rein zu packen ? Oder wofür hast du es direkt gedacht?
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lynxman am Mi 16.03.2016, 23:30:34
Im Datenblatt sind die Sequenzen was die Adressen angeht tatsächlich unterschiedlich angegeben.

Der Prinzipelle ablauf ist der selbe.

Beim 29F040B ist mir aufgefallen das die Sequenz vom 29F040 ebenfalls funktioniert.
Würde mich wundern wenn das beim 29F010B anders wäre.

Versuch es einfach mal und nimm für beide Chips einfach die Sequenz vom 29F010.

Leider habe ich gerade keinen 29F010B hier, sonst würde ich es mal testen.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Do 17.03.2016, 07:22:08
@tuxie: Ja, ich möchte die Möglichkeit haben, eigenen Code schon vor dem Booten vom Laufwerk ausführen zu lassen. Die Idee kam mir konkret, als ich einen Bug in einem Festplattentreiber gesucht hatte, was ziemlich mühsam war, weil ich nicht vorher einen Debugger/Monitor starten konnte.
Aber auch ein Diagnose-Cartridge ist damit natürlich möglich.

@Lynxman: Wenn sich der AM29F010B doch so programmieren lässt, dann muss ich noch irgendeinen Bug in der Software oder im Aufbau haben, denn ich bekomme ihn anders als den AM29F010 noch nicht geflasht. Ich werde erst einmal die Adressen laut Datenblatt ausprobieren. Wenn's damit auch nicht geht => Bug. :(
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lynxman am Do 17.03.2016, 10:16:18
@Lynxman: Wenn sich der AM29F010B doch so programmieren lässt, dann muss ich noch irgendeinen Bug in der Software oder im Aufbau haben, denn ich bekomme ihn anders als den AM29F010 noch nicht geflasht. Ich werde erst einmal die Adressen laut Datenblatt ausprobieren. Wenn's damit auch nicht geht => Bug. :(

Kann natürlich sein das es beim 29F010B anders gelöst ist als beim 29F040B.

Beim "B" kann man die einzelnen Sektoren Schreibschützen.
Ist der Chip neu oder hast Du einen gebrauchten in Verwendung?
Wenn der von einen Motherboard ist, dann ist evtl. ein Teil geschützt.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: mfro am Do 17.03.2016, 17:26:04
Hier (http://www.stcarchiv.de/tos1990/12/romport-expander) steht übrigens, wie man auf den ROM-Port schreibt, indem man von dort liest.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Do 17.03.2016, 19:13:02
Beim "B" kann man die einzelnen Sektoren Schreibschützen.
Ist der Chip neu oder hast Du einen gebrauchten in Verwendung?

Laut Verkäufer war er zwar neu, allerdings sind anscheinend nicht alle Speicherzellen 0xFF. Entweder da stehen teilweise zufällige Bits drin oder der Flash war doch schon einmal gebraucht. Wenn Sektoren geschützt wären, würde das natürlich auch erklären, warum der Chip weder auf "Chip Erase" noch auf "Byte programming" reagiert.

Wenn ich das Datenblatt richtig verstehe, kann man den Schreibschutz wohl nur mit einem "richtigen" Programmer (inkl. höherer Programmierspannung) zurücksetzen, oder? Aber immerhin abfragen müsste ich den Schutzstatus können... Ich werde weiter probieren...
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Do 17.03.2016, 21:01:51
Hm, jetzt läuft's, ohne dass ich was am Programmieralgorithmus geändert hätte. Also wird mit den Adressen aus dem Datenblatt des AM29F010 tatsächlich auch der AM29F010B programmiert. Danke für den Hinweis, dass das tatsächlich gehen sollte, @Lynxman .

Seltsam, dass ich das gestern nicht hinbekommen habe. Vielleicht hatten auch einfach nur einige Kontakte am Atari-ROM-Port-Stecker, die seit Jahrzehnten nicht mehr genutzt wurden, Probleme gemacht und deshalb konnte ich aus dem einen Flash-IC nicht mein Testpattern sondern seltsam zufällige Bits auslesen...

Dann kann ich ja am Wochenende die Software entwickeln, um das Modul vom PC aus zu befüllen.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: tin am Fr 18.03.2016, 17:28:03
Bin gerade über diesen Thread gestolpert - zum debuggen von defekter Hardware wäre so ein Cartridge wirklich genial, da das normale Diagnosecartridge einem nicht in allen Fällen weiterhilft.

Falls Du "Bestellungen" entgegennehmen solltest: hier! :) Ansonsten muss ich dann wohl mal meine Lötstation entstauben und schauen, wo da nochmal das heisse Ende war...
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Sa 19.03.2016, 15:11:35
So, läuft grundsätzlich. Siehe Foto, bei dem ich meine Platine zum Test mit dem Images des Atari-Diagnosecartridges bespielt habe.

Allerdings ist irgendetwas mit dem AM29F010B-IC komisch. Manchmal bleiben beim Chip-Erase einzelne Bits auf '0' hängen oder beim Programmieren einzelne Bits auf '1'. Der AM29F010 macht hingegen keine Probleme. Das erklärt wohl, warum ich bei meinem früheren Test seltsame Bitmuster gesehen hatte. Mit etwas höherer Spannung (5,5V) scheint das Löschen und Beschreiben zuverlässiger zu funktionieren. IC kaputt? Ich denke, ich sollte ihn tauschen...

@tin: Ich werde wohl keine komplett aufgebauten Platinen verkaufen. Was ich mir evtl. vorstellen kann, ist PCB + fertig programmierter ATmega. Löten müsstest Du dann aber immer noch selbst.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: tin am Sa 19.03.2016, 18:16:15
Zitat
Was ich mir evtl. vorstellen kann, ist PCB + fertig programmierter ATmega. Löten müsstest Du dann aber immer noch selbst.
Super! Da bin ich dabei. Mit passender Stückliste bekomme ich das schon hin.

Kurze Anmerkung zu der CPU Zugriffszeit: AFAIR greift die CPU im ROM im Gegensatz zum RAM nicht nur 4-Zyklen aligned zu - Befehle, die z.B. 6 Zyklen brauchen, werden (in den meisten Fällen, ich lasse den Prefetch mal außen vor) im RAM auf 4 Zyklen aligned, im ROM jedoch nicht. Das ist auch der Grund, warum bestimmte Routinen aus dem ROM leicht schneller ablaufen können, als aus dem RAM.
Wie gesagt: AFAIR, ich lasse mich da gerne korrigieren.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: tuxie am Sa 19.03.2016, 18:42:31
Wie groß in mm ist den die Platine ? Könnte man ja mal 10 Stück fertigen lassen. Hab da zwar in Fernost aber die Qualität ist gut, einen Lieferrand da kosten 10 Platinen bis 100x100mm nur 25$
Hätte durchaus auch Interesse an der Platine
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Sa 19.03.2016, 19:07:11
@tuxie: Erst einmal habe ich aus meiner Seeed-Bestellung ja noch 9 Platinen übrig...
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: tuxie am Sa 19.03.2016, 19:56:57
Würde gern eine dir abnehmen wenn du eine über hast....
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Sa 19.03.2016, 20:30:03
Ich überlege mir mal, wie ich das anbiete. Wie schon an tin geschrieben, denke ich Platine und programmierter ATmega. Um Flash-Bausteine und SMD-Hühnerfutter (Widerstände, Kondensatoren, Dioden) müsstet Ihr Euch dann selbst kümmern. Wer einen EPROM-/Flash-Programmer besitzt, könnte auch eine abgespeckte Version aufbauen, ohne ATmega, die (E)EPROMs/Flash-ICs extern beschreiben und dann in Fassungen auf der Platine einsetzen.

Das scheinbare Problem mit dem einen Flash-IC hat sich aufgeklärt: Es scheint, dass eines meiner Labornetzteile eine Macke hat :( und sehr viel Ripple auf der Ausgangsspannung zeigt. Offenbar ist der eine Flash-Baustein dafür empfindlicher als der andere. Aus einem anderen Netzteil versorgt, läuft die Schaltung nun auch mit 5,0 V.

Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lynxman am Sa 19.03.2016, 20:38:51
Das scheinbare Problem mit dem einen Flash-IC hat sich aufgeklärt: Es scheint, dass eines meiner Labornetzteile eine Macke hat :( und sehr viel Ripple auf der Ausgangsspannung zeigt. Offenbar ist der eine Flash-Baustein dafür empfindlicher als der andere. Aus einem anderen Netzteil versorgt, läuft die Schaltung nun auch mit 5,0 V.

Der "B" wurde/wird meiner Erinnerung nach in einem anderen Prozess (kleinere Strukturen) gefertigt.
Bei so was hat es gerne mal Nebenwirkungen wie von Dir beschrieben gegeben.
In der Abeit hatten wir auch mal einen ähnlich gelagerten Fall.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: tuxie am Sa 19.03.2016, 21:10:34
mir würde die reine Platine reichen, rest hab ich alles da auch den AT-mega habe ich da, von 8bit projekten.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: neogain am So 20.03.2016, 15:39:01
@czietz, Da haste auf die Roms genau das geflasht, was ich haben will XD. Frage: Paßt die Platine auch an den Mega ST? Frage deshalb, weil neben dem Romport beim Mega noch der Tastaturanschluß ist.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am So 20.03.2016, 16:20:58
@neogain: Sorry, das hatte ich nicht berücksichtigt, ich hatte nur am 1040ST gemessen. Wenn ich mir das Foto unter http://atarimuseum.de/pics/systeme/st/megast_left.JPG angucke, befürchte ich, dass es nicht passen wird. Wie Du weiter oben im Thread sehen kannst, sitzt ausgerechnet rechts vom ROM-Port-Steckverbinder bei mir der ATmega.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: neogain am So 20.03.2016, 16:52:40
@neogain: Sorry, das hatte ich nicht berücksichtigt, ich hatte nur am 1040ST gemessen. Wenn ich mir das Foto unter http://atarimuseum.de/pics/systeme/st/megast_left.JPG angucke, befürchte ich, dass es nicht passen wird. Wie Du weiter oben im Thread sehen kannst, sitzt ausgerechnet rechts vom ROM-Port-Steckverbinder bei mir der ATmega.

sind gut 14mm Platz. könnte gehen. Wenn du eine Platine machen könntest ohne den Atmega, also als reines Rommodul mit der Testsoftware drauf, würden sich bestimmt mehr als ein Abnehmer finden (mich z. B.) Am Besten mit PLCC32 Flashs, dann kann man die Platine noch kompakter machen.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: ditto am So 20.03.2016, 19:03:51
Dann wär ich auch dabei! So ein Testmodul fehlt mir leider noch. :(
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Mi 23.03.2016, 15:12:38
Hallo,

so eine Platine behalte ich, zwei sind reserviert, ich habe also aktuell noch 7 Platinen abzugeben. Ich dachte an folgende zwei Möglichkeiten. (Alle Preise verstehen sich inkl. Verpackung und Versand innerhalb Deutschlands.)

1. Nur die Platine = 5 €
Wer auf die Programmierbarkeit des Moduls verzichten kann, weil er z.B. einen EPROM-Programmer besitzt, kann sich so z.B. sein eigenes Testkit bauen. Benötigte Teile:

- 2 Flash-ICs (z.B. AM29F010, SST39SF010 [erhältlich z.B. bei Conrad]) in DIP-32. Manche EPROMs mit passenden Pinout sind auch möglich, sprecht mich ggf. an. ... und natürlich eine Möglichkeit, diese vor dem Einbau zu programmieren.
- 1 SMD-Kondensator 0805 100 nF
- 1 Drahtbrücke, weil der ATmega dann nicht bestückt ist.

Evtl. ist es bei dieser Lösung sogar möglich, den nicht benötigten Teil der Platine abzusägen, um sie mechanisch für einen MegaST passend zu machen. Die Kompatibilität zum MegaST kann ich mangels Testmöglichkeit aber nicht versprechen.

2. Platine + programmierter ATmega8515 = 15 €
Damit könnt Ihr das programmierbare ROM-Port-Modul aufbauen, das ich auch einsetze. Die Software wird über eine serielle Schnittstelle ins Modul geladen und kann selbstverständlich auch wieder  geändert/ersetzt werden. Benötigte Teile:

- 2 Flash-ICs (z.B. AM29F010, SST39SF010 [erhältlich z.B. bei Conrad]) in DIP-32.
- 2 SMD-Kondensatoren 0805 100 nF
- 4 SMD-Widerstände 0805 10 kΩ (Pullups/-downs, exakter Wert unkritisch)
- 2 SMD-Dioden z.B. 1N4448 (genauer Typ unkritisch)
- 2 3-polige Stiftleisten für die serielle Schnittstelle und die Stromversorgung beim Programmieren

- ... und natürlich eine serielle Schnittstelle mit 5V-TTL-Pegel, z.B. ein USB-zu-seriell-Kabel. Wenn dieses auch 5 V Spannungsversorgung liefert, kann es gleichzeitig auch die Versorgung beim Programmieren der Flash-ICs übernehmen.

Schaltplan und Anleitung, wie die Programmierung abläuft, lege ich bei. Falls gewünscht, kann ich ein Python-Skript bereitstellen, das die Flash-Bausteine aus einer Intel-HEX-Datei programmiert.

Bei Interesse schreibt mir bitte eine E-Mail: czietz(at)gmx(punkt)net, dann können wir den Rest klären. Bitte habt Verständnis, dass ich mich um die Option 2 erst nach den Osterfeiertagen kümmern kann. Die ATmegas müssen ja auch bestellt und programmiert werden.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: tin am So 17.04.2016, 13:39:12
Ein dickes "Danke" an czietz für die Mühe und den hilfreichen Support! Die Karte macht das Testen der ROMs auf echter Hardware um einiges leichter, genau wie erhofft.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: ditto am So 17.04.2016, 20:51:22
Dem kann ich mich nur anschließen! Vielen Dank auch von mir.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Mi 20.04.2016, 18:13:43
Es ist übrigens noch eine Platine verfügbar ‒ oder vielmehr wieder verfügbar geworden. Falls also jemand ein Programmiergerät hat und noch ein ROM-Port-Modul bauen will...

Wahlweise kann ich auch noch einen ATmega8515 dazu organisieren und programmieren, dann sind die Flash-ICs auf dem Modul bekanntlich stand-alone programmierbar. Preise siehe weiter oben; bei Interesse bitte PM.

Übrigens soll das Modul laut Auskunft von neogain http://forum.atari-home.de/index.php?topic=11799.msg206214#msg206214 (http://forum.atari-home.de/index.php?topic=11799.msg206214#msg206214) auch mechanisch in einen MegaST passen.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Do 28.04.2016, 21:03:13
Bekanntermaßen (siehe z.B. Profibuch) müssen Programme für ein ROM-Cartridge speziell erstellt werden. Es ist nicht einfach möglich, ein PRG- oder TOS-File irgendwie ins Cartridge zu brennen und dann von dort auszuführen, da fast alle Programme davon ausgehen, dass sie im RAM laufen, also z.B. reloziert werden wollen und einen beschreibbare Daten-Bereich erwarten.

Um die Nutzung von existierenden Programmen mit meinem ROM-Modul zu erleichtern, habe ich einen kleinen Wrapper geschrieben, den man zusammen mit dem gewünschten Programm (normale TOS/PRG-Datei) ins Flash-ROM schreibt, sodass man nun einfach Programme vom ROM-Modul starten kann. Sinnvoll kann das z.B. sein, um auf einem Atari ohne funktionierenden Laufwerke ein Testprogramm zu starten. Oder um einen Treiber für eine nicht-autobootfähige Festplatte nachzuladen, ohne eine Diskette nutzen zu müssen.

Z.Zt. nicht implementiert aber als Erweiterung denkbar wäre eine Option, das Programm schon beim Booten automatisch vom ROM-Modul starten zu lassen.

Noch hat mein Wrapper ein paar "Ecken und Kanten", aber falls Interesse besteht, kann ich ihn beizeiten hier veröffentlichen.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lukas Frank am Do 28.04.2016, 21:28:53
... falls Interesse besteht, kann ich ihn beizeiten hier veröffentlichen.

Das ist eine sehr Interessante Geschichte. Beschreibe doch mal etwas genauer wie das funktioniert und wo die Grenzen liegen und wie man dein Programm handhaben muss ...
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Do 28.04.2016, 22:12:04
Das betreffende Programm wird ins RAM kopiert. Anders lassen sich die Programme üblicherweise nicht zum Laufen bewegen. Dann muss ich etliche Dinge erledigen, die sonst GEMDOS beim Programmstart machen würde: relozieren, Base-Page ausfüllen etc. Danach läuft das Programm aber ganz normal und dürfte nicht merken, dass es aus dem ROM-Modul gestartet wurde.

Limitationen: Nachladen von weiteren Dateien ist nicht möglich, weil das ROM-Modul ja kein "echtes" Laufwerk ist, von dem Dateien gelesen werden können. Damit sind leider AES-Programme mit separaten RSC-File außen vor. Da mein ROM-Modul nur 64 kByte an (nutzbarem) Speicher bietet, ist das zugleich die Größenbeschränkung für Software. Zu guter letzt kann es natürlich sein, dass irgendein Programm den "Betrug" doch bemerkt und nicht läuft oder sich komisch verhält...
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: mfro am Do 28.04.2016, 22:22:28
Ich nehme an, Du kennst das Pexec()-Beispielprogramm im Profibuch S. 258 + 259?
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Do 28.04.2016, 22:46:58
Ja, wobei Pexec hier gar nicht nötig ist. Beim Start vom Desktop legt GEMDOS auch für ein Programm vom Cartridge schon einen Prozess samt TPA (natürlich inkl. Base-Page) an.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lukas Frank am Do 28.04.2016, 23:00:33
Muss ich mir das so vorstellen das ich einige Programme vom Typ *.TOS z.B. zusammen mit deinem Starterprogramm verteilt auf zwei Eproms brenne. Und dann dein Programm durch doppelklicken von klein c:\ starte und das Programm welches ich nutzen möchte durch dein Programm nachgeladen wird per Dateiauswahl, oder ?
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Fr 29.04.2016, 07:14:52
Im Prinzip ja. Derzeit wird allerdings nur ein Programm unterstützt, nicht mehrere. Das brennst Du mit meinem Code als "Vorspann" ins Flash, dann kannst Du's von Desktop aus von c:\ starten.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: 1ST1 am Fr 29.04.2016, 08:19:53
Mich wundert diese Vorgehensweise. TOS unterstützt, wenn das ROM die richtige Datenstruktur beinhaltet, doch auch ein ROM-Laufwerk, welches unter dem Laufwerksbuchstaben "c:" (Kleines "c" im Gegensatz zum Festplattenlaufwerk "C:", großes "C") angesprochen im Cardridgeport angesprochen werden kann. Da ist der ganze Aufwand nicht nötig, und man kann da auch einen AUTO-Ordner anlegen.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Fr 29.04.2016, 08:35:25
Mich wundert diese Vorgehensweise. TOS unterstützt, wenn das ROM die richtige Datenstruktur beinhaltet, doch auch ein ROM-Laufwerk, welches unter dem Laufwerksbuchstaben "c:" (Kleines "c" im Gegensatz zum Festplattenlaufwerk "C:", großes "C") angesprochen im Cardridgeport angesprochen werden kann. Da ist der ganze Aufwand nicht nötig, und man kann da auch einen AUTO-Ordner anlegen.

Leider vollkommen falsch! Bitte lies doch das Profibuch oder die offizielle Atari-Dokumentation, bevor Du sowas schreibst. Der Desktop gaukelt Dir vor, dass als Laufwerk c: ein Dateisystem auf dem Cartridge wäre. Da ist aber kein Dateisystem sondern nur eine verkettete Liste aus Programmen mit ihren jeweiligen Einsprungpunkten. Weder sind Datendateien noch Ordner möglich. Und vor allem: Das ist eine Eigenart des Desktop, GEMDOS weiß davon nichts. Wenn ein Programm versucht, eine Datei c:\foobar.rsc zu laden, guckt GEMDOS auf der Festplatte.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Sa 30.04.2016, 18:32:27
Wenn es jemand ausprobieren möchte, angehängt ein Cartridge-Image, in das ich meinen Wrapper, MEMTEST.TOS und SYSINFO.PRG gepackt habe. Es ist im Format, das sich im Emulator (z.B. Steem oder Hatari) laden lässt.

Es würde mich interessieren, ob das mit den von Euch verwendeten TOS-Versionen usw. fehlerfrei läuft.

Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lukas Frank am Sa 30.04.2016, 18:53:23
Ich besitze ein Atari Testmodul für den Romport und probiere das mal am Montag aus ...

Mit dem ROMMIX.TTP aus dem Pinatubo Paket sollte das in zwei Eprom Files zu splitten sein.

# Kommandodatei fr ROMMIX:
# erstellen von 2 Eprom-Files fr 27256
# 1 IMG wird auf 2 Eproms aufgeteilt
# (C) 1992 M. Schwingen

# Puffergr”že setzen
bufsize 64k
# Directory setzen
chdir c:\pinatubo\rommix\

load cart.img 0 64k all -> 0 all
save rom_hi 32k <- 0 high
save rom_lo 32k <- 0 low

Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: KarlMüller am So 01.05.2016, 08:07:20
Der Desktop gaukelt Dir vor, dass als Laufw......versucht, eine Datei c:\foobar.rsc zu laden, guckt GEMDOS auf der Festplatte.
Es ist richtig was Du schreibst!

Zu dem Problem gibt es auch Programme, welche im Prinzip aus dem ROM eine Diskette machen und durch den von Dir genannten Mechanismus einen Treiber ins System hängen. Wenn ich mich recht erinnere war in der c't mal sowas.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lukas Frank am So 01.05.2016, 10:40:48
Kann denn jemand der die c´t Jahres DVDs hat mal nachschauen was es dort zum Thema Atari ST und Romport an Software eventuell gibt ?
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am So 01.05.2016, 20:07:03
Das wären dann wohl (Auszüge aus dem c't-Register):

EPROM-Bank für den Atari 520 ST
128 KByte für residente Software
Klaus Koerth
c't 1/86, S. 58

Solid-State-Disk für Atari ST
Schneller Nur-Lesespeicher am ROM-Port
Grogor von  Stangen, Peter Glasmacher
c't 9/86 S. 46

Doppelbank
c't-EPROM-Bank mit 256 KByte bestücken
Bernd Behr
c't 3/90, S. 290

EPROM-Prothese
32-Pin-EPROMs in 28-Pin-Projekten nutzen
Bernd Behr
c't 2/92, S. 160
(512 KByte ROM-Disk)

Dort gibt es einen Treiber, um den Speicherbereich des ROM-Ports als Laufwerk E: einzubinden; im Prinzip wie eine RAM-Disk, aber natürlich nur-lesend. Das macht aber sicherlich nur dann Spaß, wenn man mindestens die kompletten 128 kiByte des ROM-Ports nutzt (was mein Modul nicht kann) oder gar via Bank-Switching 256 kiByte oder 512 kiByte einbindet, wie in den letzten zwei Artikeln beschrieben, was mein Modul erst recht nicht kann.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lukas Frank am So 01.05.2016, 20:41:31
Gerade mal in zwei 32kB Eproms gebrannt und läuft wunderbar ...

(http://forum.atari-home.de/index.php?action=dlattach;topic=12584.0;attach=11118;image)

Wie hast das genau gemacht mit deinem Image ?

Kann man das mit anderen Programmen selber nachvollziehen ?
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am So 01.05.2016, 21:19:20
Um ein Programm so zu verpacken, kann ich Dir ein Python-Skript zukommen lassen, das meinen Wrapper darum packt. Hat aber alles noch Beta-Status. Zwei Programme, wie in dem Beispiel, werden vom Skript jedoch derzeit nicht unterstützt, das Image habe ich folglich mit dem Hexeditor zusammengesetzt.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lukas Frank am So 08.05.2016, 12:05:01
Habe im Englischen Forum gelesen das es jetzt auch ein EmuTOS Cartridge Modul gibt, zwar ohne GEM aber immerhin ...
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Sa 14.05.2016, 21:18:29
Das erwähnte Python-Skript, um Cartridge-Images für den ROM-Port zu erstellen, ist jetzt hier zu finden: https://www.chzsoft.de/site/hardware/diverse-kleinigkeiten-fur-den-atari-st/#normale-tos-programme-als-rom-cartridge (https://www.chzsoft.de/site/hardware/diverse-kleinigkeiten-fur-den-atari-st/#normale-tos-programme-als-rom-cartridge)
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: Lynxman am Di 30.05.2017, 01:35:59
Das wären dann wohl (Auszüge aus dem c't-Register):

EPROM-Bank für den Atari 520 ST
128 KByte für residente Software
Klaus Koerth
c't 1/86, S. 58

Solid-State-Disk für Atari ST
Schneller Nur-Lesespeicher am ROM-Port
Grogor von  Stangen, Peter Glasmacher
c't 9/86 S. 46

Doppelbank
c't-EPROM-Bank mit 256 KByte bestücken
Bernd Behr
c't 3/90, S. 290

EPROM-Prothese
32-Pin-EPROMs in 28-Pin-Projekten nutzen
Bernd Behr
c't 2/92, S. 160
(512 KByte ROM-Disk)

Dort gibt es einen Treiber, um den Speicherbereich des ROM-Ports als Laufwerk E: einzubinden; im Prinzip wie eine RAM-Disk, aber natürlich nur-lesend. Das macht aber sicherlich nur dann Spaß, wenn man mindestens die kompletten 128 kiByte des ROM-Ports nutzt (was mein Modul nicht kann) oder gar via Bank-Switching 256 kiByte oder 512 kiByte einbindet, wie in den letzten zwei Artikeln beschrieben, was mein Modul erst recht nicht kann.

Ich weis, der Thread ist gefühlt 5 Jahre alt...

Die Artikel würden mich trotzdem interessieren.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: gh-baden am Di 30.05.2017, 01:55:55
Das wären dann wohl (Auszüge aus dem c't-Register):

EPROM-Bank für den Atari 520 ST
128 KByte für residente Software
Klaus Koerth
c't 1/86, S. 58

Solid-State-Disk für Atari ST
Schneller Nur-Lesespeicher am ROM-Port
Grogor von  Stangen, Peter Glasmacher
c't 9/86 S. 46

Doppelbank
c't-EPROM-Bank mit 256 KByte bestücken
Bernd Behr
c't 3/90, S. 290

EPROM-Prothese
32-Pin-EPROMs in 28-Pin-Projekten nutzen
Bernd Behr
c't 2/92, S. 160
(512 KByte ROM-Disk)

Dort gibt es einen Treiber, um den Speicherbereich des ROM-Ports als Laufwerk E: einzubinden; im Prinzip wie eine RAM-Disk, aber natürlich nur-lesend. Das macht aber sicherlich nur dann Spaß, wenn man mindestens die kompletten 128 kiByte des ROM-Ports nutzt (was mein Modul nicht kann) oder gar via Bank-Switching 256 kiByte oder 512 kiByte einbindet, wie in den letzten zwei Artikeln beschrieben, was mein Modul erst recht nicht kann.

Ich weis, der Thread ist gefühlt 5 Jahre alt...

Die Artikel würden mich trotzdem interessieren.

https://shop.heise.de/katalog/doppelbank

https://shop.heise.de/katalog/eprom-prothese

Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: dbsys am Di 30.05.2017, 09:16:41
Das wären dann wohl (Auszüge aus dem c't-Register):

EPROM-Bank für den Atari 520 ST
128 KByte für residente Software
Klaus Koerth
c't 1/86, S. 58

Solid-State-Disk für Atari ST
Schneller Nur-Lesespeicher am ROM-Port
Grogor von  Stangen, Peter Glasmacher
c't 9/86 S. 46

Doppelbank
c't-EPROM-Bank mit 256 KByte bestücken
Bernd Behr
c't 3/90, S. 290

EPROM-Prothese
32-Pin-EPROMs in 28-Pin-Projekten nutzen
Bernd Behr
c't 2/92, S. 160
(512 KByte ROM-Disk)

Dort gibt es einen Treiber, um den Speicherbereich des ROM-Ports als Laufwerk E: einzubinden; im Prinzip wie eine RAM-Disk, aber natürlich nur-lesend. Das macht aber sicherlich nur dann Spaß, wenn man mindestens die kompletten 128 kiByte des ROM-Ports nutzt (was mein Modul nicht kann) oder gar via Bank-Switching 256 kiByte oder 512 kiByte einbindet, wie in den letzten zwei Artikeln beschrieben, was mein Modul erst recht nicht kann.

Ich weis, der Thread ist gefühlt 5 Jahre alt...

Die Artikel würden mich trotzdem interessieren.

https://shop.heise.de/katalog/doppelbank

https://shop.heise.de/katalog/eprom-prothese

Oder Du findest jemanden, der alle alten c't Ausgaben auf c't ROMs hat....  ;)
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: gh-baden am Mo 05.06.2017, 22:38:32
Bekanntermaßen (siehe z.B. Profibuch) müssen Programme für ein ROM-Cartridge speziell erstellt werden. Es ist nicht einfach möglich, ein PRG- oder TOS-File irgendwie ins Cartridge zu brennen und dann von dort auszuführen, da fast alle Programme davon ausgehen, dass sie im RAM laufen, also z.B. reloziert werden wollen und einen beschreibbare Daten-Bereich erwarten.

Ich finde gerade die Beschreibung zu „PAM’s EPROM-Disk“ im „Softwareführer Atari ST“, Ausgabe 1989, S. 205:

„Einlesen von vorher eingespeicherten Programmen wie von einer RAM-Disk. Zusätzlich AUTO-Ordner und ACCs. Anschluss von Floppies nicht mehr zwingend. Versch. Größen 128k-512k“

Wie machten die das dort? Kennt jemand das Gerät?
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Mo 05.06.2017, 22:49:24
Ich finde gerade die Beschreibung zu „PAM’s EPROM-Disk“ im „Softwareführer Atari ST“, Ausgabe 1989, S. 205:

„Einlesen von vorher eingespeicherten Programmen wie von einer RAM-Disk. Zusätzlich AUTO-Ordner und ACCs. Anschluss von Floppies nicht mehr zwingen. Versch. Größen 128k-512k“

Wie machten die das dort? Kennt jemand das Gerät?

Ich kenne das Gerät nicht. Aber ich vermute stark, es funktioniert so wie die EPROM-Disks, die in der c't oder im Scheibenkleister beschrieben sind. Im EPROM ist als erstes ein kleiner Treiber, der sich in TOS als Laufwerk installiert und dafür sorgt, dass die Sektoren dieses Laufwerks aus dem (Cartridge-)Speicher gelesen werden. (Also wie eine RAM-Disk, nur dass die Sektoren im ROM liegen.) Dieser Treiber kann natürlich auch Bank-Switching implementieren, sodass mehr als die 128k Adressraum des Cartridge-Ports möglich sind.

Wenn der Treiber das Laufwerk als Bootlaufwerk einträgt, sind auch ACCs und AUTO-Programme möglich. Aber die Programme laufen natürlich nicht im ROM; sie werden von TOS weiterhin ins RAM geladen, genauso wie TOS das mit einem Programm von jedem anderen Laufwerk (Diskette, Festplatte...) auch machen würde.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: gh-baden am Mo 05.06.2017, 23:00:00
Ich finde gerade die Beschreibung zu „PAM’s EPROM-Disk“ im „Softwareführer Atari ST“, Ausgabe 1989, S. 205:

„Einlesen von vorher eingespeicherten Programmen wie von einer RAM-Disk. Zusätzlich AUTO-Ordner und ACCs. Anschluss von Floppies nicht mehr zwingen. Versch. Größen 128k-512k“

Wie machten die das dort? Kennt jemand das Gerät?

Ich kenne das Gerät nicht. Aber ich vermute stark, es funktioniert so wie die EPROM-Disks, die in der c't oder im Scheibenkleister beschrieben sind. Im EPROM ist als erstes ein kleiner Treiber, der sich in TOS als Laufwerk installiert und dafür sorgt, dass die Sektoren dieses Laufwerks aus dem (Cartridge-)Speicher gelesen werden. (Also wie eine RAM-Disk, nur dass die Sektoren im ROM liegen.) Dieser Treiber kann natürlich auch Bank-Switching implementieren, sodass mehr als die 128k Adressraum des Cartridge-Ports möglich sind.

Wenn der Treiber das Laufwerk als Bootlaufwerk einträgt, sind auch ACCs und AUTO-Programme möglich. Aber die Programme laufen natürlich nicht im ROM; sie werden von TOS weiterhin ins RAM geladen, genauso wie TOS das mit einem Programm von jedem anderen Laufwerk (Diskette, Festplatte...) auch machen würde.

Okay, also eine Read-Only-SSD, mit speziellen Bootblock-Treiber :-)
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: gh-baden am Mo 05.06.2017, 23:09:16
Ich finde gerade die Beschreibung zu „PAM’s EPROM-Disk“ im „Softwareführer Atari ST“, Ausgabe 1989, S. 205 […]
Ich kenne das Gerät nicht. Aber ich vermute stark, es funktioniert so wie die EPROM-Disks, die in der c't oder im Scheibenkleister beschrieben sind. Im EPROM ist als erstes ein kleiner Treiber, der sich in TOS als Laufwerk installiert und dafür sorgt, dass die Sektoren dieses Laufwerks aus dem (Cartridge-)Speicher gelesen werden. (Also wie eine RAM-Disk, nur dass die Sektoren im ROM liegen.) Dieser Treiber kann natürlich auch Bank-Switching implementieren, sodass mehr als die 128k Adressraum des Cartridge-Ports möglich sind.

Wenn der Treiber das Laufwerk als Bootlaufwerk einträgt, sind auch ACCs und AUTO-Programme möglich. Aber die Programme laufen natürlich nicht im ROM; sie werden von TOS weiterhin ins RAM geladen, genauso wie TOS das mit einem Programm von jedem anderen Laufwerk (Diskette, Festplatte...) auch machen würde.

Wäre natürlich spannend wenn jemand die Software dazu hätte, BTW. Ich habe 1987 auf sowas ähnliches gespart, nur nicht von PAM stammend. Ich hatte am 1040STF nur eine Floppy, das war alles etwas unkomfortabel, und mein Händler riet mir zur Zweitfloppy. Ich fand aber dass Floppies keine echte Zukunft haben (hey, ich sollte Recht behalten!!!1), nur Harddisks waren damals viel zu teuer. So kam ich auf die EPROM-Disk. Das ließ ich dann doch, denn max. 576 KB reichten mir nicht für den GFA-Assembler, GFA-Basic und bissl Kleinkram wie Flexdisk.

Echt schade auch, dass Atari am ST keinen „richtigen“ Userport vorgesehen hat, sondern da Leitungen sparte.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: 1ST1 am Mo 05.06.2017, 23:40:32
Moment mal, unterstützt TOS nicht ohnehin ROM-Module mit mehreren Programme in einem ROM-Laufwerk als Buchstabe "c:" (Kleinbuchstabe!!!)??? Darüber steht, ich will jetzt nicht extra nachschauen, nach meiner Erinnerung auch was im Profibuch.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: neualtuser am Di 06.06.2017, 00:43:29
Zitat
Kennt jemand das Gerät?
Es gab etwas ähnliches von Maxon (Auszug aus einer Händlerpreisliste Nr. 3 März ´89):
Profitreiber mit ProfiBank (Atari ST)
Das Profiline-System macht den ROM-Port zum vielseitigsten Port des Atari ST. Die Profibank stellt eine EPROM-Bank mit bis zu1,5 Megabyte Kapazität und ein 32 Bit Eingabe- Ausgabe Port zur Verfügung.

Profiram - optionale Ergänzung zum Profiline - System
... akkugepufferte RAM- Karte mit bis zu 384 Kilobyte Kapazität.

Ich hatte mal die technischen Unterlagen...
mal schauen...

Zitat
... in einem ROM-Laufwerk als Buchstabe "c:" (Kleinbuchstabe!!!)
Programm muss nur sicherstellen das die Pfade richtig gesetzt werden und nicht auf
"c:" geschrieben wird (außer mit Tricks...  ;))
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: czietz am Di 06.06.2017, 10:17:30
Moment mal, unterstützt TOS nicht ohnehin ROM-Module mit mehreren Programme in einem ROM-Laufwerk als Buchstabe "c:" (Kleinbuchstabe!!!)??? Darüber steht, ich will jetzt nicht extra nachschauen, nach meiner Erinnerung auch was im Profibuch.

Dieses c: ist bloß kein echtes Laufwerk, sondern eins, das Dir nur der Desktop vorgaukelt. Für TOS (bzw. GEMDOS) ist es nicht vorhanden! Konsequenzen sind u.a. dass ein Programm sein RSC-File, Konfigurationsdateien oder andere Dateien nicht von diesem Fakelaufwerk nachladen kann.

Außerdem müssen Programme in einem speziellen Format vorliegen, um als c: auf dem Desktop zu erscheinen. Das ist ja etwas, um das sich u.a. mein weiter oben im Thread genanntes Tool kümmert.
Titel: Re: Einfach programmierbares Modul für ROM-Port?
Beitrag von: gh-baden am Di 06.06.2017, 22:19:55
Es gab etwas ähnliches von Maxon (Auszug aus einer Händlerpreisliste Nr. 3 März ´89):
Profitreiber mit ProfiBank (Atari ST)
Das Profiline-System macht den ROM-Port zum vielseitigsten Port des Atari ST. Die Profibank stellt eine EPROM-Bank mit bis zu1,5 Megabyte Kapazität und ein 32 Bit Eingabe- Ausgabe Port zur Verfügung.

Profiram - optionale Ergänzung zum Profiline - System
... akkugepufferte RAM- Karte mit bis zu 384 Kilobyte Kapazität.

Das klingt cool. Das RAM wurde wohl als RAM-Disk eingebunden?