C64 SPS: Unterschied zwischen den Versionen
Tw (Diskussion | Beiträge) |
Tw (Diskussion | Beiträge) |
||
| Zeile 132: | Zeile 132: | ||
== Links == | == Links == | ||
<br /> | <br /> | ||
Version vom 16. Januar 2022, 23:06 Uhr


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
Links