NKC Forum
Registrieren | FAQ | Suche | Wer ist online? | Mitgliederliste | Heutige Beiträge | Kalender | Einloggen



Autor Thema: NKC-CPU6502
Creep
Voll in Gange
***
ID # 169


  Erstellt am 04. Januar 2019 00:59 (#1)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

wenn ich auch sonst nicht zu viel über die Feiertage gekommen bin, so habe ich doch endlich ein Projekt zu einem Zwischenstand gebracht, das mir schon lange am Herzen lag: Die NKC-CPU6502, eine 65(c)02 CPU Platine für den NKC:



Basierend auf den Ausführungen zur Anbindung des 6502 an einen Z80-BUS:

https://ancientcomputing.blogspot.com/2017/05/a-6502-cpu-for-rc2014-part-1.html

habe ich schon vor vielen Wochen gemeinsam mit Jens (derInder) eine 6502 CPU auf dem Steckbrett aufgebaut und zum Laufen gebracht. Jens hat vor allem viele kniffeliege Probleme gelöst, den synchronen 6502-BUS mit dem asynchronen Z80-BUS unter einen Hut zu bringen. Vollkommen funktioniert es immer noch nicht, deswegen habe ich in der letzten Woche eine Prototypenplatine entworfen, mit der man hoffentlich zuverlässiger die letzten Probleme ausbügeln kann als auf dem Steckbrett. Das war auch mein Debüt mit KiCad, Unschönheiten bitte ich deshalb nachzusehen. Auf der "Produktplatine" werde ich die Leiterzugführung dann noch etwas verschönern.

Hier ist der Schaltplan als JPG:



Bzw. als als PDF zum Runterladen:

https://github.com/Creep69/NKC/blob/master/HW/CPU6502/CPU6502-Schaltplan.pdf

Ebenso das Layout als JPG:



und als PDF:

https://github.com/Creep69/NKC/blob/master/HW/CPU6502/CPU6502-Layout.pdf

Wie schon geschrieben handelt es sich um eine Prototypenplatine. Deswegen sind einige Signale noch herausgeführt, um evtl. die Generierung noch etwas zu verbessern. Dafür auch das Lochrasterfeld.

Auf dem Steckbrett lief die CPU schon zusammen mit KEY, GDP64, IOE und LCD. Ein Mini-Testprogramm zur Ansteuerung von Tastatur, LCD und GDP existiert auch schon. Jens hat auch schon einige Schritte in Richtung Grundprogramm gemacht.

Heute habe ich die ersten 5 Prototypen bestellt, in wenigen Wochen sollten sie hier sein. Mit Jens zusammen würde ich dann die neue CPU-Platine hoffentlich finalisieren und dann Bestellungen annehmen.

Wenn hier jemand Erfahrung mit der Programmierung und Inbetriebnahme von 6502-Systemen hat (C64, Apple, ATARI, ...) könnte ich vielleicht noch 1 oder 2 Platinen abgeben. Derjenige sollte aber auch möglichst selbst kleine Testprogramme schreiben können und mit den Signalen auf dem BUS etwas anfangen können. Das ist halt die erste CPU-Platine, die es für den NKC bisher überhaupt noch nicht gab. Dafür öffnet sie ein weites Feld für neue Software und für Programmierer, die eben aus der ATARI/Commodore/Apple-Welt kommen.

Der Prototyp steht soweit, trotzdem sind Hinweise und Vorschläge immer noch willkommen!

Gruß, Rene

Beiträge: 651 | Mitglied seit: Januar 2017 | IP-Adresse: nicht gespeichert
m.haardt
Voll in Gange
***
ID # 93


  Erstellt am 05. Januar 2019 01:05 (#2)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Ich kenne mich mir dem 6502 kaum aus, aber wenn ihr Probleme habt, empfehle ich sehr vergleichende Aufnahmen mit einem logic analyzer zu machen.

Für so ein eher langsames System reicht der saleae 8 channel 24 MHz Analyzer. Mit normalen Kabeln um die 7 Euro, mit Klipsen um die 12 Euro auf Ebay.

Cooles Projekt!

Michael

Beiträge: 501 | Mitglied seit: April 2008 | IP-Adresse: nicht gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 05. Januar 2019 11:43 (#3)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Moin Michael,

der Saleae war schon im Einsatz an der CPU ;)
Dank deines Tipps letztens, hatte ich mir den auch zugelegt.

Apropos langsam, bei mir läuft der Testaufbau mit 2MHz das entspricht einem Z80 mit 8MHz :D

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
m.haardt
Voll in Gange
***
ID # 93


  Erstellt am 05. Januar 2019 16:31 (#4)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Ich weiss, dass der 6502 nicht so viele Zyklen für alles braucht. Aber lasse ihn mal irgendwas mit 16 bit machen, dann wird's schnell hässlich.

Mit langsam meinte ich aber vor allem die Signale. Da tut's der kleine Logic Analyzer echt gut. Für mehr braucht man den open bench sniffer, aber der kostet mehr und die richtige Firmware und Betriebssoftware zu finden ist die Hölle. Der Kleine läuft einfach.

Ich könnte mir denken, dass das Timing, wann die Adressen angelegt werden und wann welches Steuersignal kommt, je nach Peripherie kritisch wird. Der Z80 ist da durchaus behäbig oder freundlich, je nachdem wie man das sehen will.

Michael

Beiträge: 501 | Mitglied seit: April 2008 | IP-Adresse: nicht gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 05. Januar 2019 16:39 (#5)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Moin Michael,

mit der aktuellen Beschaltung habe ich praktisch jede NKC-Karte benutzen können mit Ausnahme der SER-Karte (die SER2 läuft aber).

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
hschuetz
Administrator
Seitenadmins
******
ID # 3


  Erstellt am 10. Januar 2019 13:03 (#6)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Hallo,
der 6502 ist schon interessant, frage ist nur ob man da eine vernünftige Entwicklungsumgebung hinbekommt.
@Jens
ich meine die SER müsste auch zum laufen zu bringen sein...
ich schau mal...da war was...

-----------------------
Ob 8bit oder 16 oder 32 ist doch egal, Haupsache selbstgebaut!

Beiträge: 889 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
shock__
Ist öfters hier
**
ID # 196


  Erstellt am 11. Januar 2019 12:36 (#7)  |  Zitat Zitat   PN PN   E-Mail E-Mail
3.1.2018? ;) Da is aber'n Bug im Silkscreen!

Spaß bei Seite ... cooles Projekt, find ich super wie ihr euch zusammen gefunden habt zwecks Aufgabenteilung (ich kenn das zu gut ... Hardware kann ich, Software kann/möchte ich allerdings nicht).

Und langfristig gibt's dann 'nen modularen C64-kompatiblen Rechner für den NKC Bus? ;)

Beiträge: 26 | Mitglied seit: November 2018 | IP-Adresse: nicht gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 11. Januar 2019 14:39 (#8)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Na ja,
ob es ein C64 wird ist fraglich :rolleyes:
Aber ein Apple 1 ist wohl drinn :D

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
m.haardt
Voll in Gange
***
ID # 93


  Erstellt am 12. Januar 2019 17:46 (#9)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Dem NKC mit 6502 würde DOS65 gut stehen: Komplett quelloffen und prinzipiell als Pendant zu CP/M-80 zu sehen.

Michael

Beiträge: 501 | Mitglied seit: April 2008 | IP-Adresse: nicht gespeichert
hschuetz
Administrator
Seitenadmins
******
ID # 3


  Erstellt am 12. Januar 2019 18:58 (#10)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Hallo Jens,
gerade mal in meinen Unterlagen gewühlt...
6502 hatte ich in der Technikerschule mal gebaut und programmiert. War so ne Art EMUF.. also CPU, RAM, EPROM,
VIA 6522 und ACIA 6551. Die Entwicklungsumgebung war irgendwie kompliziert... ob ich das wieder hinbekomme???
Aber die SER ist der selbe Chip...sollte also auch funktionieren. Ich werde mal alles zusammensuchen und digitalisieren...
Gruß Hans-Werner

-----------------------
Ob 8bit oder 16 oder 32 ist doch egal, Haupsache selbstgebaut!

Beiträge: 889 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
m.haardt
Voll in Gange
***
ID # 93


  Erstellt am 12. Januar 2019 20:47 (#11)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Ich kann mir vorstellen, dass die Konvertierung vom synchronen 6502 Bus mit phasenverschobenem Takt zu Z80 und die Rückkonvertierung auf der SER Probleme macht.

Was funktioniert denn genau nicht? Ergibt das Auslesen und Beschreiben der Register schon Unsinn oder funktioniert das noch?

Michael

Beiträge: 501 | Mitglied seit: April 2008 | IP-Adresse: nicht gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 12. Januar 2019 21:46 (#12)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Moin Moin,

@Hans-Werner: Ich bin für jede Doku dankbar :)

Bei der SER hab ich nur Müll von den Registern zurückbekommen. Es liegt mit ziehmlicher Sicherheit am Timing. Da muste ich auch einige Klimmzüge machen damit z.B. die GDP läuft.
Von daher bin ich mit der aktuellen Umsetzung recht zufrieden, für die SER haben wir mit der SER2 ja ein Ersatz, bei anderen Komponenten sehe es schlechter aus ;)


PS: Als erste Software werde ich wohl ein angepassten WOZMON mit Krusader (Editor/Assembler/Debugger) umsetzen. Evtl. noch das A1-Basic dazu.
Desweiteren bin ich bei einem Grundprogramm ähnlich dem Z80 GP2018. Da reizt mich vorallendingen die Bankload Funktion.

DOS65 hat auch was, muss mal schauen :D

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
m.haardt
Voll in Gange
***
ID # 93


  Erstellt am 13. Januar 2019 00:12 (#13)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Ich bin sicher, schon mal etwas über die korrekte Generierung von Z80/Intel /RD und /WR gelesen zu haben, und dass es meist falsch gemacht wird, aber ich find's nicht mehr.

Aber schau mal hier:

http://www.baltissen.org/files/816isa-3.pld

Das sieht so ähnlich wie bei Dir aus. Identisch, schlechter oder besser?

Hier gibt es auch noch was, aber schlecht zu verstehen. Ich glaube, man gab sich Mühe, damit die Steuersignale rechtzeitig enden, bevor sich die Adressen ändern (Seite 11 unten):

https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19850026198.pdf

Michael

Beiträge: 501 | Mitglied seit: April 2008 | IP-Adresse: nicht gespeichert
Creep
Voll in Gange
***
ID # 169


  Erstellt am 17. Januar 2019 17:51 (#14)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

die Prototyp-Platinen sind heute angekommen. Die für Jens werde ich morgen gleich verschicken und dann auch selbst mit dem Testen beginnen.

Falls noch jemand mitmachen möchte (das Timing bedarf möglicherweise noch Optimierung), 1..2 kann ich noch verschicken.

Gruß, Rene

Beiträge: 651 | Mitglied seit: Januar 2017 | IP-Adresse: nicht gespeichert
hschuetz
Administrator
Seitenadmins
******
ID # 3


  Erstellt am 17. Januar 2019 19:40 (#15)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Hallo Rene,
ich hätte da auch Interesse..
Ich habe die Unterlagen von meinem Emuf 6502 auch wieder gefunden... kommt bald online.
Gruß
Hans-Werner

-----------------------
Ob 8bit oder 16 oder 32 ist doch egal, Haupsache selbstgebaut!

Beiträge: 889 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
Creep
Voll in Gange
***
ID # 169


  Erstellt am 17. Januar 2019 22:29 (#16)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Hans-Werner,

super, ich pack Dir gleich eine ein, die dann morgen raus geht.

Gruß, Rene

Beiträge: 651 | Mitglied seit: Januar 2017 | IP-Adresse: nicht gespeichert
hschuetz
Administrator
Seitenadmins
******
ID # 3


  Erstellt am 19. Januar 2019 22:52 (#17)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Hallo Rene,
Platine ist angekommen
@Jens
hast du eine Memory Map?
Hier mal die Daten von meinem EMUF 6502... das Eprom folgt demnächst

https://ntxdhxgzadrdathx.myfritz.net/andere/emuf6502/index.html
Gruß
Hans-Werner

-----------------------
Ob 8bit oder 16 oder 32 ist doch egal, Haupsache selbstgebaut!

Beiträge: 889 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 20. Januar 2019 14:29 (#18)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Moin Hans-Werner,

bei mir sind die Platinen gestern angekommen.

Ein paar kleine Fehler hab ich darauf schon gefunden.
Warte mit dem Aufbau am besten noch ein klein wenig. Ich werd dann hier die Fehler (und Korrekturmöglichkeiten) auflisten.

Eine direkte Memory Map haben wir dafür noch nicht.
Abgesehen von den festen Adressen (Zeropage, Stack und Vektoren) haben wir z.Zt. nur die IO-Adressen (sind ja auch per Jumper einstellbar) auf $C000-$C0FF.

PS: bei der EMUF Seite führt der Link für den Befehlssatz ins Leere.

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
hschuetz
Administrator
Seitenadmins
******
ID # 3


  Erstellt am 20. Januar 2019 21:05 (#19)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Hallo Jens,
beim Emuf liegt der ACIA auf $9000 und der iosel bei $A000.
Vielleicht bekommt man ja den Monitor auf dem NKC zum laufen.
Gruß
Hans-Werner

-----------------------
Ob 8bit oder 16 oder 32 ist doch egal, Haupsache selbstgebaut!

Beiträge: 889 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
Creep
Voll in Gange
***
ID # 169


  Erstellt am 17. März 2019 18:00 (#20)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

ich möchte zwischendurch wenigstens mal ein Lebenszeichen zur CPU6502 geben. Kurz: Der Status sieht eigentlich sehr gut aus! Es fehlt nur an Zeit.

Hardware I:

Jens hat das Timing bei der Umsetzung 6502 an Z80-Bus optimiert, so daß die Platine mit 6502 CPU und getesteten 2MHz stabil läuft. Ich hatte anfangs arge Probleme damit. Das lag aber anscheinend an der CPU aus China. Mit einer Rockwell R6502 auch bei mir stabil.

Die Entwicklungsoptionen habe ich aus dem Layout schon rausgeworfen und ziehe noch das eine oder andere gerade. Wortwörtlich ;)


Software:

Kleine Testroutinen mit GDP64, KEY, BWS, LCD usw. funktionieren einwandfrei! Eine gute Grundlage, daraus ein komplettes System zu stricken.

Jens ist dabei, ein Grundprogramm, sowie Apple-Monitor u.a. zu adaptieren und hat damit schon einen guten Status erreicht. Er kümmerst sich um die Anbindung der CAS-neo, ich kämpfe noch mit der Umsetzung der VDIP1-Routinen auf den 6502.

Wie beide verwenden zur Zeit (noch?) unterschiedliche Assembler und Konzepte. Macht ja auch Spaß, etwas neues auszuprobieren. Ich versuche, eine Struktur aufzubauen, so daß man sämtliche Routinen für die einzelnen Komponenten nach Bedarf inkludieren kann. Am Ende würde ich gern den CC65 nutzen. Erstmal als leistungsfähigen Macroassembler, später auch als C-Compiler.

Hardware II:

Obwohl die CPU6502 eigentlich schon produktreif ist, hatten wir noch die Idee, gleich einen einfachen Timer auf der Platine zu integrieren. Damit hätten wir endlich eine interruptgesteuerte Zeitbasis sowie interruptgesteuerte Routinen, die im Hintergrund laufen. Z.B. für das Cursorblinken oder auch Routinen in Spielen etc.

Ich überlege noch, wie das am elegantesten mit wenig Hardwareaufwand realisierbar ist. Der Timer sollte ein- und ausschaltbar sein, damit sich auch Nutzerprogramme ohne Absturz in die ISR hängen können und sich der IRQ in zeitkritischen Situationen abschalten läßt.

Meine Favoriten sind im Moment ein SPG8640BN mit 74LS688 und 74LS74 oder (weniger retro) ein ATTINY, der dann auch gleich den Reset-IC einspart. Da bin ich jetzt in der Steckbrett Bastelphase.

Es geht also weiter. Falls noch jemand schon selbst Software entwickeln/testen will, sind noch 1 oder 2 Prototypenboards vorhanden, die man mit wenigen simplen Korrekturen voll nutzen kann. Natürlich noch ohne den Timer.

Gruß, Rene

Beiträge: 651 | Mitglied seit: Januar 2017 | IP-Adresse: nicht gespeichert



| https://hschuetz.selfhost.eu | Boardregeln | Datenschutzerklärung


Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts


Seite in 0,027973 Sekunden erstellt
20 Dateien verarbeitet
gzip Komprimierung eingeschaltet
1597,69 KiB Speichernutzung