C64 SPS: Unterschied zwischen den Versionen

Aus
Zur Navigation springen Zur Suche springen
Tw (Diskussion | Beiträge)
Tw (Diskussion | Beiträge)
Zeile 126: Zeile 126:
== Downloads ==
== Downloads ==


* [[Media:6502-Extension-SCH.png|6502 Extension - Schematic]]  
* [[Media:C64-SOS-SCH.png|C64 SPS Modul - Schematic]]  


<br />
<br />

Version vom 16. Januar 2022, 23:06 Uhr

C64-SPS
C64-SPS
C64-SPS


Das C64 SPS Modul

Das C65 SPS Modul ist eine Platine für den Commodore C64, mit der man den C64 in eine SPS verwandelt. Eine SPS (Speicher programmierbare Steuerung) dient dazu, eine Anlage zu steuern, zum Beispiel eine Modell Eisenbahn.

Das Modul stellt digitale Ausgänge und digitale Eingänge zur Verfügung. Der C64 kann per Software die digitalen Ausgänge steuern (TTL Pegel, 5V) sowie die digitalen Eingänge (TTL Pegel, 5V) abfragen. Um die Programmierung des C64 zu vereinfachen, implementiert das Modul zusätzliche BASIC Befehle. So kann man einfach über ein einfaches BASIC Programm die Kontrolle über eine elektrische Anlage übernehmen.


Auf dem Board befindet sich:

  • ein EEPROM Speicher mit 64KB (W27C512)
  • ein CPLD ATF-1504
  • ein Arduino Nano


Was kann man mit dem Board tun:

  • automatischer Start eines BASIC Programm nach dem Einschalten (BASIC im EPROM)
  • zusätzliche Befehle im v2 BASIC um digitale Ausgänge zu setzen und digitale Eingänge abzufragen
  • I2C Interface um dezentrale IO Boards zu steuern (MCP 23017)
  • SPI-Out Interface um DO Boards zu steuern (74HC595)
  • SPI-In Interface um DI Boards zu steuern (74HC165)


Schematic, Layout, Prototyp:


Inhalt des FLASH Speicher zusammenstellen

Für die Erstellung einer persönlichen Programm Sammlung für das Flash der 6502-Extension gibt es ein PC Programm: 6502ext-Builder


Der 6502ext-Builder nimmt die gewünschten ROM Dateien und andere Programme und verpackt sie in eine einzelne Datei (6502ext Image Datei). Diese Datei wird in den Speicher (FLASH) des UC Modul geschrieben. Nun steht die Programm Sammlung für den C64 zur Verfügung.


6502ext Image Datei

Die Programm Sammlung auf dem 6502-Extension Board kann man frei zusammen stellen. Dazu dient ein kleines Programm (6502ext-Builder) am PC. Das Programm erstellt eine sogenannte 6502ext Image Datei. diese Image Datei hat die Endung .bin und kann direkt in den FLASH Speicher programmiert werden.


Die Größe der 6502ext Image Datei darf den verfügbaren Platz im FLASH Speicher nicht überschreiten. Bei Verwendung eines AM29F040 darf die Image Datei eine maximale Größe von 512KB haben. Die Größe setzt sich zusammen aus der Summe der einzelnen ROM Dateien und Programme plus der Größe des 6502ext-Loader. Der 6502ext-Loader ist ein Programm, das beim Start der CPU in dem 6502-Extension Board notwendig ist.


Der 6502ext-Loader

In dem 6502-Extension Board können mehrere ROM Dateien und Programme gespeichert sein. Der Loader kopiert die notwendigen Dateien aus dem Flash Speicher in den RAM. Ggf. wird der RAM schreibgeschützt und dem externen System als ROM angeboten.


Der 6502ext-Builder

In dem Flash Speicher des 6502-Extension Board kann man fertige Image Dateien programmieren. Dazu braucht man nur ein EPROM Programmiergerät, wie zB. den TL866. Um so eine Image Datei zu erstellen braucht man den 6502ext-Builder.

Der 6502ext-Builder erstellt eine Image Datei aus einem oder mehreren Dateien (Programme oder ROM Dateien). Die Image Datei enthält automatisch den passenden 6502ext-Loader für das externe 6502 System.


Für die Erstellung des UC-Menü benötigt das UC-Builder folgende Informationen zu jedem C64 Programm:

  • Name des Programm
  • Art des Programm
  • Den Dateinamen des Programm
  • ggf. Zusatzinfos


Die CSV Datei Steuerdatei für Erstellung der Image Datei

Das 6502ext Builder liest die benötigten Informationen aus einer Text Datei (CSV Datei). Jede Zeile in der CSV Datei steht für ein Programm oder ROPM Image. Mit der Option -m sagt man dem 6502ext-Builder den Namen der CSV Datei (-m File.csv). Wenn der 6502ext-Builder ohne CSV Dateinamen aufgerufen wird, sucht es automatisch nach der CSV Datei image.csv.


Beispiel einer CSV Datei:

Programm;           Typ;      Dateiname
BASIC_2_C0;         ROM;      901465-01.bin;                     $C000
BASIC_2_D0;         ROM;      901465-02.bin;                     $D000
BASIC_4_B0;         ROM;      901465-23.bin;                     $B000
BASIC_4_C0;         ROM;      901465-20.bin;                     $C000
BASIC_4_D0;         ROM;      901465-21.bin;                     $D000
EDIT_2_B;           ROM;      901474-01.bin;                     $E000
EDIT_2_N;           ROM;      901447-24.bin;                     $E000
EDIT_4_40_N-50Hz;   ROM;      901498-01.bin;                     $E000
EDIT_4_40_N-60Hz;   ROM;      901499-01.bin;                     $E000
EDIT_4_80_B-50Hz;   ROM;      901474-04.bin;                     $E000
KERNAL_2;           ROM;      901465-03.bin;                     $F000
KERNAL_4;           ROM;      901465-22.bin;                     $F000
8296_ROM;           ROM;      324746-01.bin;                     s8296
8296D_EDITOR;       ROM;      324243-01.bin;                     $E000
HELP!;              ROM;      help!8032.bin;                     $A000
ExBasic-II 9;       ROM;      ExBasic_II_9.bin;                  $9000
ExBasic-II A;       ROM;      ExBasic_II_A.bin;                  $A000
ExBasic 8032;       ROMSET;   ExBasic-II 9, ExBasic-II A
4032-B;             ROMSET;   BASIC_4_B0, BASIC_4_C0, BASIC_4_D0, EDIT_4_40_B-50Hz, KERNAL_4
8032-B;             ROMSET;   BASIC_4_B0, BASIC_4_C0, BASIC_4_D0, EDIT_4_80_B-50Hz, KERNAL_4
8296;               ROMSET;   8296D_EDITOR, 8296D_ROM
8032 + Help!;       ROMSET;   HELP!, 8032-B
8296 + Help!;       ROMSET;   HELP!, 8296
8296 + ExBasic II;  ROMSET;   ExBasic 8032, 8296
Hello World;        PRG;      PRG\test2.bas  


News

  • 9.1.2022 -- erste Prototyp Platine bestellt --


Downloads