1551USB
Suche
Index
FAQ
Kontakt
Zurück

Bild


1551USB ist eine USB-Verbindung vom Commodore Plus/4 zum PC. Das Interface wird aus einem Paddle der 1551-Floppy, einem Arduino Uno (Klon) und einem RS232-USB-Adapter aufgebaut. Das Paddle-Interface der Floppy 1551 beinhaltet eine Adressdekodierung und einen I/O-Chip. Damit hat man einen 8 Bit breiten parallelen Port zum Senden und Empfangen.
Die Floppy 1551 erreicht durch das ungeschickte Original-Protokoll etwa 1,6KByte/s. Mit dem USB-Adapter ist mit dieser ersten Version problemlos eine Beschleunigung um den Faktor 4 möglich. Alte C16-Spiele mit rund 6-10Kbyte brauchen höchsten 2 Sekunden in der direkten Übertragung vom PC.
Mit der Verbindung von 6,4KByte/s in beide Richtungen ergeben sich vielfältige Möglichkeiten, daher werden alle bisherigen Erkenntnisse als Open Source veröffentlicht.


Der Anschluss ans Paddle der 1551


                                      +-----+
 paddle  +----[PWR]-------------------| USB |--+  paddle
         |                            +-----+  |
         |         GND/RST2  [ ][ ]            |                            |o|  1  gnd
         |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |                            |o|  2  dev
         |          5V/MISO2 [ ][ ]  A4/SDA[ ] |                            |o|  3  pa0
         |                             AREF[ ] |                            |o|  4  pa1
         |                              GND[ ] |  USB GND                   |o|  5  pa2
         | [ ]N/C                    SCK/13[ ] |  st1 14                    |o|  6  pa3
         | [ ]IOREF                 MISO/12[ ] |  st0 12                   ||o|  7  pa4
 15 res  | [ ]RST                   MOSI/11[ ]~|  pa7 10                   ||o|  8  pa5
         | [ ]3V3    +---+               10[ ]~|  pa6 9                    ||o|  9  pa6
 USB 5V  | [ ]5v    -| A |-               9[ ]~|  pa5 8                     |o| 10  pa7
  1 gnd  | [ ]GND   -| R |-               8[ ] |  pa4 7                     |o| 11  dav
         | [ ]GND   -| D |-                    |                            |o| 12  st0
         | [ ]Vin   -| U |-               7[ ] |                            |o| 13  ack
         |          -| I |-               6[ ]~|                            |o| 14  st1
  3 pa0  | [ ]A0    -| N |-               5[ ]~|                            |o| 15  res
  4 pa1  | [ ]A1    -| O |-               4[ ] |                            |o| 16  gnd
  5 pa1  | [ ]A2     +---+           INT1/3[ ]~|                            |o| 17  gnd
  6 pa3  | [ ]A3                     INT0/2[ ] |
 11 dav  | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  USB RX                1551 Paddle Pinout
 13 ack  | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  USB TX
         |            [ ] [ ] [ ]              |
         |  UNO_R3    GND MOSI 5V  ____________/
          _______________________/


   Paddle: Pin 1 : GND - Pin 2: DEV = drive 9


     (ASCII from http://busyducks.com/ascii-art-arduinos)



Bild


Der einfache Aufbau mit Steckbrücken reicht für den ersten Test.


Bild


Nach dem Einstecken des USB-RS232-Wandlers muss die serielle Schnittstelle eingestellt werden. Der Adapter lässt sich leicht mit "lsusb" finden. Meine Version meldet sich als "ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port" . Im Verzeichnis /dev sollte "ttyUSB0" zu finden sein.

Einstellen der Baudrate:

stty -F /dev/ttyUSB0 57600
stty -F /dev/ttyUSB0 raw

Danach ist der Adapter einsatzbereit. Mit "echo -n 1 >/dev/ttyUSB0" kann kurz getestet werden, ob die Activity-LED beim Zugriff blinkt.

Bild Für Einstellung und Zugriff auf den USB-Bus werden üblicherweise root-Rechte benötigt !

Bild

Der zur Zeit eingesetzte USB-Adapter. Wird z.B. bei Ebay für kleines Geld angeboten: USB-to-TTL-Konverter-Arduino-RS232-3-3V-5V-PL2303-UART-Adapter-Seriell-Converter

Bild
Nachdem alles richtig verbunden, der Arduino mit der aktuellen Software beschrieben wurde, kann die Plus/4-Software geladen werden. Im Bild die erste Testversion im VICE-Emulator. Dort sollte dann "USB-INTERFACE: FOUND" stehen.
Dann kann ein kleines PRG gesendet werden:
root@michael-CELSIUS-W280:/home/michael/c16/pcsoft# ./send -f kikstart.prg
# Complete Blocks : 24
# Carryover Bytes : 213
# Low-Address: 0X1
# High-Address: 0X10
# Filename: kikstart.prg
# Adding Pointer: 6405bytes
# Completing Blocks: 25
# Sending @ 57600 bps
# Progress: 6406 Bytes


Die PRG-Dateien werden vor dem USB-Transfer in ganze Blocks mit zusätzlichen Parametern umgewandelt, um dieses Datenpaket dann zu senden.

Nun erscheint auf dem Bildschirm des Plus/4 "Ready" und der Cursor. Das Programm kann gestartet werden.





PC-Software

SEND PRG , Version 0.2 (9.4.2017)
Ein kleines Tool zum schnellen Senden einzelner PRG-Dateien zum C16 und Plus/4. Im Moment besteht noch ein Problem mit der verwendeten RS232-Lib, die nur mit Delay richtig funktioniert. Alternativ kann bei Linux "cat" oder Windows "type" verwendet werden. Das muss dann nur im Source angepasst werden.

Bild1551 USB send source Version 0.1 (19.2.2017)


Bild Das Tool bereitet ein PRG für den Transfer vor und sendet dieses.
Array:

Byte 0: Pointer lo
Byte 1: Pointer hi
Byte 2: Blocks
Byte 3: Load Adresse lo
Byte 4: Load Adresse hi

Byte [5..] PRG

Der letzte unvollständige Block wird mit $00 aufgefüllt.

Es wird immer ein (Leer-)Byte mehr gesendet (sendsize+1), damit der Plus/4 nach dem letzten Block das Programm beendet.





Arduino Uno Software

Arduino Plus/4 Idler
Die Software zum Durchreichen der gesendeten Bytes in der ersten Version.

BildArduino Plus/4 Idler
Source und Hex im ZIP. MAKE ALL und MAKE PROGRAM beschreiben den Arduino nach Einstellen des Ports.



Commodore C16 und Plus/4 Software

Commodore Plus/4 1551USB
Eine erste Empfangssoftware, die im Bereich ab $6000 liegt, also nur Programme bis $5fff empfangen kann. Diente nur zur Entwicklung und wird bald abgelöst.

1551USB Loader for Tape Buffer
Empfangssoftware für den Tape-Puffer, um den Speicher von $1000-$FFFF beschreiben zu können.

1551USB Function-ROM Lo V0.1
Ein erster ROM-Ersatz für die interne 3plus1-Software.
Bild
Nach dem Austausch des originalen 3plus1 Lo-ROM, erscheint die USB-Software mit Taste F1.

1551USB Function-ROM Lo V0.2
27.03.2017: Eine aktualisierte Version mit Directory-Browser.
Bild
Ein Bild vom VICE xplus4-Emulator.

1551USB Function-ROM Lo V0.3
08.04.2017: Kleine optische und technische Änderungen der unidirektionalen Version. Der "32K+-Loader" wird nun vollständig aus dem ROM gestartet und etwas Border-Flackern signalisiert Aktivität. Zudem kam ein kleiner Fade-In Effekt dazu.

Letzte Änderung: 2017-04-09 10:16:48
  Rubrik:  DIY : Do it yourself
Rubriken-Übersicht
 9 Besucher online 

Valid XHTML 1.0 Transitional Valid CSS!