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



Autor Thema: Umfrage: Welches Spiel für den 68K NKC als nächstes?
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 29. Oktober 2022 17:30 (#21)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Nettes Projekt. Gefällt mir gut :)
Muss ich gleich nach weiteren .vgm files suchen.
PS. Für den Fall dass es dir noch nicht aufgefallen ist in der Funktion "extractuint32_t" hast du noch einen Bug.

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
tuti
Stammgast
**
ID # 225


  Erstellt am 29. Oktober 2022 19:48 (#22)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Ich geb's zu. Ist ein wenig mit heißer Nadel entstanden. Ich schau noch mal. Da muss einiges noch runder. Siehe auch die ganzen auskommentierten Code-Stückchen.

Insbesondere: Was ich gar nicht hinbekommen habe ist die Verwendung deiner Delay-Funktion. Die mit der Schleife bis eine gewisse Anzahl von ms vergangen ist. Als Differenz von Zeitstempeln. Eben diese Funktion zur Ermittlung der Zeitstempel liefert bei mir immer 0. Hängt das Ding womöglich von der GDP-FPGA ab, die ich nicht habe?

-----------------------
Definitiv sind Frösche und Himbeeren am besten!

Beiträge: 222 | Mitglied seit: Juli 2022 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 29. Oktober 2022 19:59 (#23)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,
Ja die Delay Funktion braucht den Timer der in der GDP-FPGA ist. Dieser wird im startup initialisiert und generiert alle 5ms einen Interrupt. In der Irq-Routine wird im wesentlichen eine globale Variable hochgezählt die ich zur Zeitmessung benutze. Diese hat auch einen "hook" in dem man eigene Funktionen einhängen kann und damit Dinge im Hintergrund machen kann. Dies benutze ich z.B. bei der neuesten Version von Tetris um im Hintergrund eine Melodie zu spielen.

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 29. Oktober 2022 20:12 (#24)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Früher, vor der GDP-FPGA, hatte ich eine (selbst gebaute) 6522 Karte in meinem NKC und hab mit einem seiner Timer den 5ms Interrupt generiert. Ein Timer ist auf jeden fall m.A. nach ein absolutes "must-have" um vernünftig delays erzeugen zu können.

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
tuti
Stammgast
**
ID # 225


  Erstellt am 29. Oktober 2022 20:20 (#25)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Das hatte ich befürchtet. Habe ja jetzt das GDP-SYNC missbraucht. Und die Loops empirisch ermittelt.

"empirisch", wie hochgestochen... Geraten... Ausprobiert habe ich das... :)

-----------------------
Definitiv sind Frösche und Himbeeren am besten!

Beiträge: 222 | Mitglied seit: Juli 2022 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 29. Oktober 2022 20:38 (#26)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Und eine GDP-FPGA bauen?
Schaut schwieriger aus als es letztendlich ist. Hab auch schon mehrere gebaut :D

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 06. Januar 2023 17:31 (#27)  |  Zitat Zitat   PN PN   E-Mail E-Mail
zum Thema ein neues Spiel für den NKC hab ich wieder mal was einfaches programmiert (mein erstes C++ Projekt).
Minesweeper! Das spielt man mit der Maus.
Links clicken - Stein umdrehen
Rechts clicken - Mine markieren
https://github.com/Creep69/NKC/tree/master/SW/68k/c/Minesweeper
Wenn jemand daran interessiert ist kann ich gern den Source hochladen.


Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 18. Januar 2023 16:38 (#28)  |  Zitat Zitat   PN PN   E-Mail E-Mail
hat Minesweeper schon jemand ausprobiert?
Würd mich über Feedback freuen.
btw. Hab da kürzlich 3D Effekte hinzugefügt :D
Es gibt den Beginner-Mode (9x9, 10 Mienen) und den Intermediate Mode (16x16, 40 Mienen siehe Screenshot oben) -> starten mit commandline Parameter -i
Wenn man auf ein bereits aufgedecktes Feld clickt werden die umliegenden Felder grün markiert (als kleine Hilfe).

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
m.haardt
Voll in Gange
***
ID # 93


  Erstellt am 18. Januar 2023 20:04 (#29)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Wie hast Du die 6522 Karte gebaut? Ich schaute mir das mal an und es ist im Grunde nicht schwer - abgesehen davon, den Takt für die Timer zu generieren.

Michael

Beiträge: 501 | Mitglied seit: April 2008 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 18. Januar 2023 20:30 (#30)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Uh. Muss mal schauen ob ich den Schaltplan noch zusammen bekomme. Hab den 6522 jedenfalls synchron (E,VPA, VMA) an den 68000 angeschlossen. Aber aktuell unterstützt meine C-Library den 6522 nicht mehr. Den hab ich durch den FPGA-Timer ersetzt. Für Minesweeper brauchst du jedenfalls eine GDP-FPGA!

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
m.haardt
Voll in Gange
***
ID # 93


  Erstellt am 19. Januar 2023 14:43 (#31)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Mich interessiert das auch nur prinzipiell, wie Du es geschafft hast, den 6522 mit Timerfunktion anzuschliessen. Synchron heisst, Du bist nicht über den NKC-Bus gegangen?

Phi2 ist gleichzeitig Taktinput und IORQ. Beim 6502 ist das auch richtig so, aber beim Z80 gibt es keine solche Busphase und darum funktioniert auf diese simple Weise alles bis auf den Timer.

Michael

Beiträge: 501 | Mitglied seit: April 2008 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 19. Januar 2023 15:10 (#32)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Der 68000 hat extra besondere Leitungen zum Anschluss von alter 65xx Peripherie.
Die dazu notwendigen Leitungen sind E (Takt = 1/10 des CPU-Taks), VPA (Valid Peripheral Adress, Input), VMA (Valid Peripheral Memory Address, Output zum 65XX).
Wenn unter einer Adresse ein 65xx I/O Baustein angesprochen werden soll so wird dies dem 680xx via VPA angezeigt.
Dieser initiiert dann einen zu E (Takt für 65XX) synchronen Buszugriff und zeigt dies via VMA an.
Ich hab damals die CPU-Karte ein wenig gepatcht (wegen VPA) und VPA,VMA+E auf freie Signale vom Bus gelegt und VPA via OpenCollector von der 6522 Karte getrieben - damit ein Zugriff darauf synchron erfolgt.
Die Umschaltung normaler / synchroner Zugriff macht dann die CPU selber.
Da brauchst nichts dafür.

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
m.haardt
Voll in Gange
***
ID # 93


  Erstellt am 19. Januar 2023 17:02 (#33)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Das wusste ich nie, tolles Feature! Aber damit funktioniert ein 6522 dann leider nur am 68000. Danke für die Erklärung!

Michael

Beiträge: 501 | Mitglied seit: April 2008 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 19. Januar 2023 17:50 (#34)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Nein das Feature hat auch der 68008.
Es gibt lediglich ein kleines problem. Der VMA-Pin ist dem Sparstift zum Opfer gefallen (zu wenig Pins im DIL-48 Gehäuse). Aber den kann man mittels eines 74LS73 recovern. Die Schaltung dazu hab ich wo rumliegen. Such ich raus und poste sie hier wenn du willst

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
m.haardt
Voll in Gange
***
ID # 93


  Erstellt am 19. Januar 2023 20:42 (#35)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Ich dachte an ganz andere CPUs als 68k. Das Schöne am NKC ist ja, dass die Peripheriekarten mit jeder CPU funktionieren, von der SER mal abgesehen. Irgendwas Wichtiges steht bei dem UART nicht im Datenblatt.

Der 6522 ist ein wirklich netter Chip, aber der Timer lebt halt von Phi2.

Michael

Beiträge: 501 | Mitglied seit: April 2008 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 19. Januar 2023 21:21 (#36)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hmm ja stimmt. Der 6522 ist toll. Hab auch schon mal einen mit einem 4MHz Z80 betrieben (Phi2 = 4MHz). Hat auch problemlos funktioniert. Das ist auch das tolle am FPGA. Der ist maximal flexibel beim Businterface und ein 6522 ist leicht nachgebaut.

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
m.haardt
Voll in Gange
***
ID # 93


  Erstellt am 20. Januar 2023 10:19 (#37)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Moment. Wie hast Du das gemacht? Der Z80 hat ein paar Takte pro IO-Zyklus und Phi2 ist ja nicht nur Timer, sondern eben auch Strobe für IO-Zyklen.

Michael

Beiträge: 501 | Mitglied seit: April 2008 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 20. Januar 2023 11:21 (#38)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Puh das ist 30 Jahre her. Aber soweit ich mich erinnere war da nichts besonderes im Spiel. Normale Addressdecodierung beim Z80 (IORQ, ...) -> an CS von 6522, Phi2 an Takt von Z80. R/W von 6522 and WR (z80). Der 6522 ist da relativ robust.
Ich hatte da den 6522A. Der ist für 2MHz ausgelegt, hat aber an 4MHz problemlos funktioniert

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
m.haardt
Voll in Gange
***
ID # 93


  Erstellt am 20. Januar 2023 13:46 (#39)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Das sollte eigentlich dann mehrere reads und writes pro Zugriff auslösen.

Das macht viel Funktionalität kaputt, aber wenn man die nicht braucht, löst es das Problem mit dem Timer. Ich hätte nicht gedacht, dass man den 6522A so schnell betreiben kann.

Michael

Beiträge: 501 | Mitglied seit: April 2008 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 20. Januar 2023 16:37 (#40)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Was macht es denn kaputt?
I/O Ports, Timer, Interrupts gehen. Was fehlt denn noch?

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert



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


Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts


Seite in 0,017909 Sekunden erstellt
17 Dateien verarbeitet
gzip Komprimierung eingeschaltet
1265,74 KiB Speichernutzung