You are not logged in.

Dear visitor, welcome to Forum64. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

  • »x1541« is a verified user

Posts: 6,749

Date of registration: Nov 24th 2002

  • Send private message

member since 126 month member since 126 month member since 126 month member since 126 month member since 126 month member since 126 month member since 126 month

21

Tuesday, April 28th 2009, 3:59pm

Camper hat wieder falsch verlinkt ;)

Gemeint ist eigentlich diese Platine, die auch selbst flashen kann (in VC20, PET und 1540/41/70/71):
http://vic-20.de/x1541/hardware/petram.html

bzw.

http://x1541.de/hardware/petram.html (lieber so, falls ich doch mal eigenen webspace haben sollte) :)

Sourcen zum Flashen gibt es von mir für VC20, PET und die Diskdrives. Marko Mäkelä hat mal für VC20 und PET ein schöneres Programm geschrieben. Dann hat Womo mal etwas ähnliches geschrieben, aber da weiss ich nicht, ob es auch auf meiner Hardware läuft, und ob das öffentlich zugänglich ist.

Das ganze ist jeweils für die 29Cxxx Flashs von Atmel und kompatible. Die 29Fxxx Flashs von AMD und kompatible werden ja doch etwas anders programmiert. Da muss dann noch was angepasst werden. Ich glaub die muss man erst grossflächig löschen und dafür kann man dann byteweise programmieren, während sich die Atmels selbst automatisch blockweise löschen beim programmieren.

Für den C64 gab es glaub schonmal ein Projekt mit AMD Flash und auch das Retro Replay arbeitet mit AMD. Da gibt es laut Jens Schönfeld gewisse Probleme am C64. Weiss ich nun nicht ob das auch für die Atmels gilt. Ich wollte das schon immer mal testen, mit Hinblick auf die Diagnose-Platine, die ja auch flashbar sein soll, aber bisher nicht dazugekommen :rotwerd:

skoe

macht komische Sachen

  • "skoe" is male
  • »skoe« is a verified user
  • "skoe" started this thread

Posts: 2,034

Date of registration: Nov 12th 2003

Location: Berlin

  • Send private message

member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month

22

Tuesday, April 28th 2009, 7:19pm

Mal überlegt, statt dem 74SL273 und dem anderen TTL ein GAL oder CPLD zu verwenden? Kostet auch nicht mehr und hat aber sonst nur Vorteile ...

Der Vorschlag klingt gut, aber ich wollte ja eine Schaltung for Dummies. Du hast Recht, mit einem PAL oder CPLD würde die Schaltung weder größer noch teurer, aber nicht mehr Dummy-Niveau.

Das mit dem PAL/CPLD wäre dann gut, wenn man es hinbekommen würde, diesen auch vom C64 aus zu programmieren. Wahrscheinlich benutzen die doch ein bestimmtes Programmierprotokoll. Vielleicht könnte man das mit IO1/IO2 oder so rüberwackeln, evtl. durch Jumper abgesichert? ....Ach ich verliere mich wieder in Philosophie.....

Andererseits: Ich wollte ja kein Retro-Replay nachbauen, sondern ein einfachstes Spielemodul. Vielleicht solltest Du aus Deiner Final Expansion auch eine C64-Version machen die kann dann alles :-)

Quoted

Für den C64 gab es glaub schonmal ein Projekt mit AMD Flash und auch das Retro Replay arbeitet mit AMD. Da gibt es laut Jens Schönfeld gewisse Probleme am C64. Weiss ich nun nicht ob das auch für die Atmels gilt.

Fallen Dir dazu Details ein? Ich hab AMD nur genommen, weil es zufällig der erste Treffer bei Reichelt und Conrad war.

edit: Um die Software zum Flashen mache ich mir die wenigsten Sorgen :-)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Vergiss BASIC und lern C! C lernen mit cc65 und C64
Bau Dir ein eigenes Modul! EasyFlash

This post has been edited 1 times, last edit by "skoe" (Apr 28th 2009, 7:48pm)


C64-CAMPER

Liemke - das Paradies auf Erden ;-)

  • »C64-CAMPER« is a verified user

Posts: 7,443

Date of registration: Mar 31st 2006

Location: 33758 SHS

  • Send private message

member since 72 month member since 72 month member since 72 month member since 72 month

23

Tuesday, April 28th 2009, 8:42pm

@x1541

Korrekt,hatte es noch falsch in meinen Bookmarks ... :winke:
Classic Gamers -->http://www.classic-gamers.de<--

24

Wednesday, April 29th 2009, 11:11am

Andererseits: Ich wollte ja kein Retro-Replay nachbauen, sondern ein einfachstes Spielemodul. Vielleicht solltest Du aus Deiner Final Expansion auch eine C64-Version machen die kann dann alles :-)


Ich habe schon mit dem Gedanken gespielt. Aber einerseits ist das Timing beim VC64 viel kritischer und außerdem gibt es beim C64 schon die optimale Lösung in Form des MMCR, da muss man nix mehr entwickeln.

25

Wednesday, April 29th 2009, 11:38am

Ich faende so einen Modulnachbau schon reizvoll.
Vor allem auch fuer neue Projekte.
unter 10 eur Bauteile zzgl. Platine sind schon nett...
Gruss,
enthusi

26

Wednesday, April 29th 2009, 12:24pm

Ich faende so einen Modulnachbau schon reizvoll.
Vor allem auch fuer neue Projekte.
unter 10 eur Bauteile zzgl. Platine sind schon nett...
Gruss,
enthusi

Na dann werd ich mich wohl mal mit dem C64 Expansionport beschäftigen. Aber erst mal muss das VC-20 Modul sauber arbeiten ...

Oder meinst du die einfache Lösung mit den zwei TTL?

This post has been edited 1 times, last edit by "Diddl" (Apr 29th 2009, 12:32pm)


skoe

macht komische Sachen

  • "skoe" is male
  • »skoe« is a verified user
  • "skoe" started this thread

Posts: 2,034

Date of registration: Nov 12th 2003

Location: Berlin

  • Send private message

member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month

27

Friday, May 1st 2009, 8:52pm

So, bei dem schönen Wetter hab ich mich heute an den Gartentisch gesetzt und die mechanischen Sachen vorbereitet. Von jedem Schritt habe ich ein Foto gemacht. Wenn was brauchbares dabei rauskommt, schreibe ich 'ne Anleitung.

Das Ergebnis:




Jetzt muss ich nur mal wieder in Erinnerung bekommen, wie Eagle funktioniert und die in diesem Thread beschriebene Schaltung zusammenmalen. Oder hat sonst jemand Lust dazu? =)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Vergiss BASIC und lern C! C lernen mit cc65 und C64
Bau Dir ein eigenes Modul! EasyFlash

skoe

macht komische Sachen

  • "skoe" is male
  • »skoe« is a verified user
  • "skoe" started this thread

Posts: 2,034

Date of registration: Nov 12th 2003

Location: Berlin

  • Send private message

member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month

28

Saturday, May 2nd 2009, 8:44pm

Kann mal bitte jemand mit Ahnung von Hardware auf den Stromlauf schauen?

Insbesondere die Beschaltung der Steuerleitungen (PHI2 und Co.) und die Negierungen interessieren mich.

Was es können soll:
- Normale 8k Cartridges ($8000 - $9FFFF), Jumper evtl. offen
- Normale 16k Cartridges ($8000 - $9FFFF, $A000 - $BFFF)
- Ocean Type 1 Module, normale Variante n * 16k ($8000 - $9FFFF, $A000 - $BFFF), umschaltbar mit n => $DE00 bis 1 MByte
- Ocean Type 1 Module, T2-Variante n * 8k ($8000 - $9FFFF), umschaltbar mit n => $DE00 bis 512 kByte
- noch andere?

Mit einem Menü davor (auf Bank 0) ließen sich auch relativ einfach mehrere 8k und 16k Module auf einmal flashen und auswählbar machen.
skoe has attached the following file:
  • easyflash.pdf (54.06 kB - 9 times downloaded - latest: Jun 6th 2009, 11:54am)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Vergiss BASIC und lern C! C lernen mit cc65 und C64
Bau Dir ein eigenes Modul! EasyFlash

skoe

macht komische Sachen

  • "skoe" is male
  • »skoe« is a verified user
  • "skoe" started this thread

Posts: 2,034

Date of registration: Nov 12th 2003

Location: Berlin

  • Send private message

member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month

29

Monday, May 4th 2009, 7:44pm

Auch wenn es nicht so aussieht, als würde noch jemand so ein Modul bauen, poste ich hier mal einen korrigierten Schaltplan. Beim anderen stimmt die Pinbelegung der Flashs nicht, hatte das falsche Symbol verwendet.

Heute abend würde ich das Ding mal zusammenfädeln. Frage ich vorher nochmal ganz vorsichtig: Kann bitte mal jemand auf die Schaltung gucken, ob sie fehlerhaft ist?

Edit: PDF angefügt
skoe has attached the following file:
  • easyflash.pdf (54.24 kB - 13 times downloaded - latest: Sep 13th 2010, 8:34pm)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Vergiss BASIC und lern C! C lernen mit cc65 und C64
Bau Dir ein eigenes Modul! EasyFlash

Posts: 1,789

Date of registration: Aug 28th 2005

Location: Leverkusen

  • Send private message

member since 90 month member since 90 month member since 90 month member since 90 month member since 90 month

30

Monday, May 4th 2009, 8:12pm

Also mir fällt nichts besonderes auf. Allerdings habe ich auch Null Erfahrung mit Cartridges am C64 :D

Eine Frage des Stils sind vielleicht die Signale an zwei Eingängen des gleichen Gatters. Schöner wäre es, das Signal nur an einen Anschluß zu legen und den anderen Eingang fest an GND bzw. Vcc zu legen - damit wird das Signal nur mit einem Eingang und nicht mit zweien belastet. Wenn das Signal an Vcc gelegt werden muss, sollte dies nicht direkt geschehen, sondern nur über einen Widerstand von 1k, der dann aber auch eine ganze Reihe von Eingängen versorgen darf.

Die Kondensatoren haben noch keine Werte, gemeint sind sicher 100 nF.

Hat KiCAD die Verbindung mittels der Labels so angenommen? Die älteren Versionen jedenfalls wollten den Kontaktpunkt unten links unterhalb der Schrift des Labels, so der Kontaktpunkt bei den Beschriftungen auf der linken Seite in der Luft hinge und somit keinen Kontakt gäbe - das wäre interessant, wenn Du nicht mehr fädelst, sondern eine Platine daraus machen wolltest.

skoe

macht komische Sachen

  • "skoe" is male
  • »skoe« is a verified user
  • "skoe" started this thread

Posts: 2,034

Date of registration: Nov 12th 2003

Location: Berlin

  • Send private message

member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month

31

Monday, May 4th 2009, 8:42pm

Quoted

Eine Frage des Stils sind vielleicht die Signale an zwei Eingängen des gleichen Gatters.

Ah, wieder was gelernt.

Quoted

Die Kondensatoren haben noch keine Werte, gemeint sind sicher 100 nF.

Stimmt.

Quoted

Hat KiCAD die Verbindung mittels der Labels so angenommen? Die älteren Versionen jedenfalls wollten den Kontaktpunkt unten links unterhalb der Schrift des Labels, so der Kontaktpunkt bei den Beschriftungen auf der linken Seite in der Luft hinge und somit keinen Kontakt gäbe - das wäre interessant, wenn Du nicht mehr fädelst, sondern eine Platine daraus machen wolltest.

Ich kenne die alten Versionen nicht, aber jetzt kann man den Kontaktpunkt einstellen. Rechte Maustaste, Label editieren, oben/unten/links/rechts. Der Kontaktpunkt wird auch dargestellt, wenn er nicht verbunden ist.

Hab auch schon mit dem Gedanken gespielt, Platinen zu bestellen. Bei mme-pcb.de würde ich 3 Stück für ca. 30 Euro bekommen (ca. 60 mm x 60 mm), ohne Lötstopplack, PLCC-Fassungen statt DIL, wg. Platz. Aber erstmal sehen, eine verdrahtete reicht erstmal zum Spielen. Die wird ja sogar in ein Modulgehäuse passen und damit recht robust sein.

Danke auf alle Fälle für Deine Tips.

Jetzt muss ich mir doch mal PHI2 genauer ansehen, um zu verstehen, was da an welcher Flanke passiert. Will die Schaltung verstehen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Vergiss BASIC und lern C! C lernen mit cc65 und C64
Bau Dir ein eigenes Modul! EasyFlash

  • »x1541« is a verified user

Posts: 6,749

Date of registration: Nov 24th 2002

  • Send private message

member since 126 month member since 126 month member since 126 month member since 126 month member since 126 month member since 126 month member since 126 month

32

Monday, May 4th 2009, 9:04pm

Soll das Modul das Flash auch beschreiben können? Das klappt so wohl nicht richtig. Schreibzugriffe in den Modulbereich erzeugen kein Chipselect über /ROML oder /ROMH und schon gehts schief. Dann denke ich musst Du die /WE Leitung genauso ansteuern wie den Clock Eingang des '273.

Abgesehen davon, Flashbeschreiben am 64er ist laut JS ne wacklige Sache. Hab es aber selbst noch nicht getestet.

Dann noch eins, der Jumper auf /ROMH ist wohl überflüssig. Das wird eh nur angesteuert, wenn /GAME auf GND gezogen wird. Das hast Du aber gar nicht angeschlossen.

skoe

macht komische Sachen

  • "skoe" is male
  • »skoe« is a verified user
  • "skoe" started this thread

Posts: 2,034

Date of registration: Nov 12th 2003

Location: Berlin

  • Send private message

member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month

33

Monday, May 4th 2009, 9:31pm

Schreibzugriffe in den Modulbereich erzeugen kein Chipselect über /ROML oder /ROMH und schon gehts schief.

Ach Mist. Aber genau das ist die Art von Hinweis, auf die ich gewartet habe. Hätte ich mir denken können, die PLA sorgt dafür, dass in dem RAM unterm ROM geschrieben wird, stimmts?

Dann denke ich musst Du die /WE Leitung genauso ansteuern wie den Clock Eingang des '273.

Jetzt fehlt mir die Inspiration. Weil ich zum Schreiben /WE, Addressen und Daten brauche, kann ich die /WE-Leitung nicht "per Hand" setzen, weil dann in dem Moment die falschen Adressen und Daten auf dem Bus liegen. Sieht für mich so aus, als ob die Schaltung doch nicht auf so primitivem Wege umsetzbar ist.

Flashbeschreiben am 64er ist laut JS ne wacklige Sache. Hab es aber selbst noch nicht getestet.

Ich wollte es gern mal probieren, weil mir im Datenblatt nichts offensichtliches aufgefallen ist, was dagegenspricht. Was natürlich nicht heißt, dass da nichts ist.

Mist. Ich bleibe wohl doch lieber bei Software.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Vergiss BASIC und lern C! C lernen mit cc65 und C64
Bau Dir ein eigenes Modul! EasyFlash

  • »x1541« is a verified user

Posts: 6,749

Date of registration: Nov 24th 2002

  • Send private message

member since 126 month member since 126 month member since 126 month member since 126 month member since 126 month member since 126 month member since 126 month

34

Monday, May 4th 2009, 9:56pm

Jetzt fehlt mir die Inspiration. Weil ich zum Schreiben /WE, Addressen und Daten brauche, kann ich die /WE-Leitung nicht "per Hand" setzen, weil dann in dem Moment die falschen Adressen und Daten auf dem Bus liegen. Sieht für mich so aus, als ob die Schaltung doch nicht auf so primitivem Wege umsetzbar ist.



So primitiv geht es leider wirklich nicht. Aber das heisst nicht dass es nicht mit relativ einfachen Mitteln lösbar ist. Da arbeite ich gerade selbst dran, Stichwort Diagnosemodul. Das soll ja dann auch flashbar sein :)

Im einfachsten Fall erzeugst Du den Chipselect beim Schreiben direkt aus den Adressleitungen. Wenn Du das so machst, dann überschreibst Du natürlich gleichzeitig das RAM im 64er. Dürfte aber nicht das Problem sein ...

Um einen 8kB Bereich zu dekodieren brauchst Du die Adressleitungen A15, A14 und A13. Die musst dekodieren und daraus das Chipselect des Flash erzeugen beim Schreiben. Das /WE selbst würde ich direkt das Signal am Clock des 273 verwenden, weil das per Verknüpfung mit Phi2 schon den CPU Zyklus einbezieht.


sowas geht z.b. mit einem 74ls138: http://www.chipdir.nl/giicm/74138.txt

Also die adressleitungen auf s2 bis s0 und die chipselects der beiden roms von den passenden ausgängen abgreifen. aber das gilt halt nur zum schreiben. zum lesen muss man wieder drauf achten dass auch /ROMH oder /ROML dazu aktiv sind.

35

Monday, May 4th 2009, 10:17pm

Schön langsam würde sich nun wirklich ein CPLD oder GAL rechnen ... ;)

skoe

macht komische Sachen

  • "skoe" is male
  • »skoe« is a verified user
  • "skoe" started this thread

Posts: 2,034

Date of registration: Nov 12th 2003

Location: Berlin

  • Send private message

member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month

36

Monday, May 4th 2009, 10:27pm

@Diddl: Das wollte ich auch gerade sagen. Aber dann ist mir eingefallen, dass der Punkt an der Sache sein sollte, ohne Programmierequipment auszukommen. Das es nur für den Spaß an der Freude sein soll, wäre mir der Aufwand sonst zu groß. Ich bekomme ja demnächst noch ein LPC-Board, wo ich dann wieder was anderes mit mache :-)

Weil ich noch nicht ganz aufgeben wollte, hab ich noch ein bisschen rumgesucht: Auf zimmers habe ich eine Datei gefunden (pla.c), die folgende Gleichung enthält:

Source code

1
2
3
4
/* ROML_ */
#define F6	((!LORAM_ || !HIRAM_ || !A15 || A14 || A13 ||		\
		  AEC_ || !R_W_ || EXROM_) &&				\
		 (!A15 || A14 || A13 || AEC_ || !EXROM_ || GAME_))


Verhält sich also /ROML im Ultimax-Modus anders? Könnte ich EXROM und GAME auch auch on the fly im Betrieb umschalten? Dann könnte man vielleicht was mit den zwei freien Bits des FF machen. Was ist eigentlich AEC?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Vergiss BASIC und lern C! C lernen mit cc65 und C64
Bau Dir ein eigenes Modul! EasyFlash

  • »x1541« is a verified user

Posts: 6,749

Date of registration: Nov 24th 2002

  • Send private message

member since 126 month member since 126 month member since 126 month member since 126 month member since 126 month member since 126 month member since 126 month

37

Monday, May 4th 2009, 10:43pm

Verhält sich also /ROML im Ultimax-Modus anders? Könnte ich EXROM und GAME auch auch on the fly im Betrieb umschalten? Dann könnte man vielleicht was mit den zwei freien Bits des FF machen. Was ist eigentlich AEC?



Interessant, so sieht es aus. Wird Dir aber wenig helfen, weil wenn Du den Ultimax Modus aktivierst, nur noch 4kB RAM da sind. Etwas wenig. Also wirst den auch nur im eingeschränkten Adressbereich aktivieren wollen und dann kannst es gleich so machen wie ich gesagt hab :) Evtl. sparst ein Gatter aber schau erstmal ob das gleiche auch für ROMH so geht.

AEC müsste die Leitung sein, die der CPU signalisiert die Füsse hochzunehmen, d.h. es zeigt VIC Speicherzugriffe an. Macht ja Sinn in der PLA nach CPU und VIC Zugriffen zu unterscheiden.

skoe

macht komische Sachen

  • "skoe" is male
  • »skoe« is a verified user
  • "skoe" started this thread

Posts: 2,034

Date of registration: Nov 12th 2003

Location: Berlin

  • Send private message

member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month

38

Monday, May 4th 2009, 10:55pm

Interessant, so sieht es aus. Wird Dir aber wenig helfen, weil wenn Du den Ultimax Modus aktivierst, nur noch 4kB RAM da sind. Etwas wenig.

Das ist mir auch schon aufgefallen. Den Ultimax bräuchte man allerdings nur zum Löschen und Schreiben. Ich stelle mir das so vor:

Eine handvoll Assembler-Funktionen liegen in den ersten 4k: Ultimax an, Schreiben, Ultimax aus, zurück. Das eigentliche Programm und Daten zum Flashen liegen dann im "normalen" Speicher.

Mein allererster Gedanke, um die Sache irgendwie sogar mit den vorhandenen Bauteilen hinzubekommen: /GAME und /EXROM direkt auch Q6 und Q7 des FF. Dann sind nach dem Einschalten 16k ROM da. Wieder Mist: Wenn der Flash noch nicht programmiert ist, sieht man $FF statt BASIC.

Diddl, jetzt ist wieder Zeit für eine PAL/CPLD-Bemerkung :-)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Vergiss BASIC und lern C! C lernen mit cc65 und C64
Bau Dir ein eigenes Modul! EasyFlash

mc71

Professional

Posts: 1,598

Date of registration: Nov 30th 2005

Location: ja...

  • Send private message

member since 90 month member since 90 month member since 90 month member since 90 month member since 90 month

39

Tuesday, May 5th 2009, 6:40am

Warum so kompliziert? Beschrieben wird das Flash doch nur alle Jubeljahre unter User-Kontrolle? Dann reicht es doch, im Programmiermodus A[15..13] auf 100 zu decodieren (also von 8000 bis 9fff) und als Chipselect zu nutzen; WE geht dann direkt an R/W. Natürlich überschreibt man sich dann das Ram unterm Flash- aber das Programmiertool kann ja den Bereich ignorieren.

A prospos CPLD: die sind doch heutzutage alle JTAG-programmierbar... sollte sich nicht ein simpler Byte-Shifter am Userport stricken lassen, mit dem man so ein Bitfile auch am 64er in den Chip pumpen kann?

40

Tuesday, May 5th 2009, 8:20am

A prospos CPLD: die sind doch heutzutage alle JTAG-programmierbar... sollte sich nicht ein simpler Byte-Shifter am Userport stricken lassen, mit dem man so ein Bitfile auch am 64er in den Chip pumpen kann?

Es wäre technisch kein Problem das CPLD vom C64 bzw. VC20 aus zu programmieren. Aber es ist irgendwie sinnlos, weil ich da das Jedec nicht erzeugen kann. Also muss ich das Jedec am PC erzeugen, irgendwie zum 8 Bitter befördern und dann flashen.

Ein Jtag Adapter macht da mehr Sinn, ein LPT Port und ein 74138 und gut.