De 1541 Ultimate

1541UDe 1541 Ultimate is gemaakt door ons clublid Gideon Zweijtzer en is nog volop in ontwikkeling. Hij heeft hiermee een implementatie gemaakt van een 1541 diskdrive in een FPGA en moet de ultieme vervanging worden van de alom gebruikte 1541 disk drive.

Het complete verhaal van de 1541 “Ultimate” cartridge

12 januari 2007
De laatste twee weken is er veel testwerk gedaan aan de 1541 Ultimate, vooral voor compatibiliteit met verschillende uitvoeringen van de C64 en de C128. Daarnaast is de hardware voorbereid op produktie op grotere schaal. De lijst met vooruit-bestellingen is bijna vol, dus de produktie van deze serie gaat heel binnenkort van start. Dat houdt niet in dat het daarmee niet meer beschikbaar komt voor andere gegadigden. Ik heb gemerkt dat de interesse dusdanig groot is, dat het best mogelijk is dat er nog een tweede batch achteraan komt. Bij interesse is het het beste om een E-mail te sturen naar mij; zie onderaan deze tekst.

Update 28 december 2007
Ja, ja.. het is echt waar; de 1541 Ultimate PLUS is geboren! Dit is een variant van de 1541 Ultimate die naast de reeds bestaande functionaliteit ook nog eens 32 MB (!!) RAM aan boord heeft. Hiervan is tot maximaal 16 MB in te zetten als REU (de RAM Expansion Unit van Commodore). Er is echt hard gewerkt om leuke nieuwe snufjes toe te voegen en dingen te verbeteren aan de “1541 Ultimate”. De tekst hieronder geeft een weergave van de status.

1541UUser Menu
Als de kaart als cartrige wordt gebruikt op een C64, heeft de “1541 Ultimate” een mooi gebruikersmenu, welke gestart kan worden door de middelste knop in te drukken. Het programma dat op dat moment loopt op de C64 wordt onderbroken en stilgezet, terwijl er een zwart scherm naar voren komt met een fraaie blauwe balk. Dit scherm laat de bestanden en mappen zien die zich op de SD-kaart bevinden. Merk op dat de “1541 Ultimate” ondersteuning biedt voor FAT, FAT16 en FAT32 bestandssystemen, inclusief lange bestandsnamen. De lengte van de namen is wel beperkt tot 22 tekens, om het tesamen met wat andere informatie netjes op een 40-koloms scherm te kunnen tonen. In dit menu scherm kan de gebruiker met de cursor-toetsen op het commodore toetsenbord vlot en gemakkelijk door de mappen op de SD-kaart heen navigeren.

Dit scherm stelt u ook in staat om een “floppy image” te selecteren, welke dan ‘virtueel’ in de 1541 drive gestopt wordt. Ook is het mogelijk om nieuwe (lege) floppies of nieuwe mappen aan te maken. Dit maakt het eenvoudig om de vele bestanden terug te kunnen vinden. Verder kan het IEC adres van de 1541 drive gemakkelijk worden gewijzigd door de toetsen 8, 9, 0 of 1 in te drukken. Omdat dit ook de drive reset, kan deze functie ook voor een harde, handmatige reset van de drive gebruikt worden.

Maar naast het kiezen van een floppy voor de 1541-drive die zich op de kaart bevindt, is het ook mogelijk om losse programma’s direct via DMA in het geheugen van de commodore te laten. Dit is de snelst mogelijke manier van laden. Een laden van een programma van 200 blocks op de floppy duurt minder dan een seconde. Door ‘R’ te drukken op het toetsenbord, wordt het programma niet alleen geladen, maar ook automatisch gestart na het laden. Overigens is deze functie niet beperkt tot losse programma bestanden op de SD-kaart, maar kunnen ook programma’s binnen een .D64 of .T64 file worden geladen. Het menu kan namelijk ook in een dergelijk bestand kijken, en behandelt deze als een ‘map’. Als u de 1541 Ultimate zult gaan gebruiken, dan zult u merken dat deze sneller is dan wat u tot nu toe ooit op de C64 gezien heeft!

Het menu kunt u verlaten door eenvoudig op de RUN STOP toets te drukken. Het programma dat was onderbroken loopt weer verder. Omdat het gebruikersmenu niet op de processor loopt van de C64 zelf, maar op een aparte 6502-processor, is het onderbreken van en terugkeren naar het lopende programma soepel en veilig.

Help! Het blokkeert mijn cartridge poort!
Ja, om gebruik te kunnen maken van de 1541 Ultimate, moet deze in het cartridge slot gestoken worden van de C64. Echter, om de frustratie tot een minimum te beperken, is de 1541 Ultimate uitgerust met ofwel een Final Cartridge III, of met de Action Replay. Het is misschien overbodig, maar uiteraard werkt de 1541 ultimate perfect samen met de snelladers die in deze cartridges geboden worden.

1541U1541 Drive Emulation
De emulatie van de 1541 drive is cycle-exact. Feitelijk is het geen emulatie, maar een implementatie, aangezien het echt hardware is wat er draait. Naast de cycle-exacte executie van de 1541 firmware, wordt ook het floppy-drive mechaniek zo natuur getrouw mogelijk nagebootst. Hierdoor ontstaat een betrouwbare en gemakkelijk te gebruiken vervanger van de alom gebruikte ‘echte’ 1541. Er wordt dus gebruik gemaakt van een SD-kaart om bestanden op te slaan; er wordt gebruik gemaakt van .D64 bestanden. Deze bestanden kunnen aan de 1541 drive gekoppeld worden, hetgeen betekent dat ze worden ingelezen en vertaald naar een hoeveelheid fysieke floppy data in GCR formaat, welk de virtuele 1541 kan lezen en schrijven. Geschreven tracks worden teruggeconverteerd naar binair formaat, zodat het .D64 bestand kan worden aangepast met de nieuw geschreven data.

Ik ben op dit moment bezig met het bepalen of het mogelijk is om zowel ondersteuning te bieden voor het .G41 of .G64 formaat, of welk formaat dan maar ook dat men in staat stelt om floppies met andere formaten dan het standaard track-formaat. Eigenlijk legt de emulatie van de drive geen restrictie op aan het onderliggende formaat, op de synchronisatie na die binnen GCR gespecificeerd is. Deze synchronisatie wordt namelijk door de hardware op de 1541 drive geimplementeerd. Als u het nut ervan inziet dat de 1541 Ultimate ondersteuning zou bieden van formaten anders dan .D64, laat mij dat dan alstublieft weten.

IEC support
Om ook andere Commodore gebruikers dan alleen C-64 gebruikers te bedienen met ditzelfde produkt, bestaat het plan om deze kaart ook buiten de cartridge poort om te gebruiken als losstaand apparaat. Omdat het gebruikersmenu in dat geval niet beschikbaar is, moet deze worden bestuurd via de seriele IEC kabel. Het is dan mogelijk om de directory op te vragen van de SD-kaart zelf, en met een aantal simpele commando’s een floppy-bestand te koppelen aan de 1541 drive. Hierna is het mogelijk om met de knoppen aan de rand van de kaart te schakelen tussen de verschillende floppies binnen één map. Dit is nodig om van floppy te kunnen wisselen binnen een demo of spel waarbij men geen IEC commando’s kan geven om dit voor elkaar te krijgen.

Updates
Nieuwere versies van de software en van de FPGA voor de “1541 Ultimate” kunnen zeer gemakkelijk worden gedistribueerd als een enkel bestand, welk op de SD-kaart gezet kan worden. Als de computer aan wordt gezet (of de externe spanningsbron in het geval van de stand alone mode), dan zoekt de “boot-rom” van de “1541 Ultimate” naar dit bestand en zal deze laden en gebruiken. Wordt dit bestand niet gevonden, dan valt de Ultimate terug naar de in Flash opgeslagen versie.

Voor vragen kunt u terecht bij de maker Gideon Zweijtzer, e-mail: gideon.adv aapje gmail puntje com