Google Analytics

Posts tonen met het label VIC-1541. Alle posts tonen
Posts tonen met het label VIC-1541. Alle posts tonen

29 september 2021

Bouw: PI1541 floppy drive emulator

In deze Blog beschrijf ik de bouw van de PI1541 floppy drive emulator met behulp van een de PI1541 print die op een Raspberry PI 3 gestoken kan worden. Met deze hardware en bijbehorende software wordt een VIC-1541 floppy drive exact geëmuleerd.

Als eerste voorzie ik de Raspberry Pi van koelblokjes omdat de IC's bij langdurig gebruik vrij heet kunnen worden. Zo'n koelset, bestaande uit 3 precies passende koelblokjes en voorzien van 3M thermisch geleidende plakfolie, kan bv. besteld worden bij Reichelt.

Hierboven zie je de Raspberry PI 3 met twee koelblokjes geplaatst aan de bovenkant van de print en één aan de onderkant.

De PI1541 is een IO adapter die op de 40 polige GPIO connector van de Raspberry PI kan worden aangesloten.

Aan de voorkant zitten twee DIN aansluitingen: 1 om aan te sluiten op de Commodore computer en de andere om een tweede floppy drive of printer door te lussen. Aan de zijkant zitten 5 knoppen die gebruikt worden om door de bestanden te navigeren die op de SD kaart aanwezig zijn.

Op de PI1541 zien we linksboven een jumper t.b.v. aan- uitschakelen van de ronde speaker eronder die de originele floppy drive geluiden nabootst. Daarnaast zit een aansluiting voor een externe speaker. Verder een rode en groene led voor de power en de disk activiteit. Voor de interface is een 74LS08 IC aanwezig (4 voudige AND gate) en het blauwe opsteekprintje is een bi- directionele level converter tussen de 5V van de Commodore en de 3.3V van de Raspberry PI. Rest nog een resetknop en in het midden een 4polige connector t.b.v. een 0.96 inch OLED scherm. Hierdoor is de module ook zonder beeldscherm te gebruiken. 

De PI1541 wordt op de Raspberry PI geplaatst zoals op de foto hieronder.

De PI1541 software wordt op de Micro SD kaart gezet zoals beschreven op: https://cbm-pi1541.firebaseapp.com/

Nu kan het geheel worden getest, mijn PI1541 blijkt te werken met uitzondering van het OLED display. Er is wel beeld via de HDMI uitgang van de Raspberry PI. Dit bleek twee oorzaken te hebben. De eerste was een fout in het configuratiebestand options.txt. Hieronder staat een gedeelte hiervan. De geel gemarkeerde instellingen zijn van belang voor het gebruikte OLED display en de aansluitingen van de PI1541 op de Raspberry PI.

// If you are using a LCD screen then specify it here
LCDName = ssd1306_128x64
//LCDName = ssd1306_128x32
//LCDName = sh1106_128x64
// If you are using a LCD screen and you would like PageUp and PageDown keys to work with it (rather than the HDMI screen) then specify this option
//KeyboardBrowseLCDScreen = 1
// change startup logo on oled - 1541ii or 1541classic
//LcdLogoName = 1541ii
LcdLogoName = 1541classic
//LcdLogoName = customfile.raw
// If you are using I2C LCD you can optionally change what pins it is connected to.
// (defaults to 0 for non-split lines (Option A) or 1 for split lines (Option B))
//i2cBusMaster = 0 //SDA - pin 27 SCL - pin 28
i2cBusMaster = 1 //SDA - pin 3 SCL - pin 5
i2cLcdAddress = 60 // I2C display address in decimal and shifted. 60 == 0x78, 61 == 0x7A

Ik heb de PI1541 printsporen van het OLED display voor de data (SDA) en de clock (SCL) gevolgd en deze kwamen uit op GPIO pin 3 en 5. In de configuratie stond i2cBusMaster default op 0 dus op pin 27 en 29. Aanpassing van deze instelling hielp echter niet.
Daarna heb ik het I2C adres van het OLED scherm bepaald m.b.v. een proefopstelling met een Arduino Nano waarbij ik de I2C uitgangen heb verbonden met het OLED display. Ik heb software gemaakt en geladen die alle I2C adressen scant en bij een reactie van het display het gevonden adres toont. Dit adres bleek te kloppen.

Tijdens de inspectie van de PI1541 print zag ik dat de soldeerbruggen aan de onderkant van de print waren gesoldeerd voor Bus 1 i.p.v. Bus 0. Nadat ik deze had aangepast werkte het OLED display.

Nu kan het geheel (m.u.v. het OLED display) worden ingebouwd in een 3D geprint kastje. Als laatste wordt het OLED display bovenop het kastje aangesloten en wordt nog een afdekkapje geplaatst.

Het opstart logo

Bestandsselectie d.m.v. de drukknoppen

De complete PI1541 in een 3D geprinte omhulling klaar voor gebruik

28 september 2021

Toepassing: SD2IEC floppy drive emulator

Oude Commodore computers zijn nog steeds populair en daarom vinden er ook moderne hardware ontwikkelingen plaats zoals oplossingen om programma's te laden via een SD kaart in plaats van de oude tape- of floppy drive.

In deze Blog beschrijf ik de SD2IEC oplossing van The Future Was 8 bit (TFW8b)

In de afkoring hierboven verwijst "SD" naar de Secure Digital geheugenkaart, "2" naar "to" en IEC naar International Electrotechnical Commission. Dit is een standaard die gebruikt is voor de seriële IEEE-488 bus die op de Commodore computers is toegepast voor floppy drives en printers.


Aan de voorkant is een sleuf aanwezig waar een full size SD geheugenkaart in past.

Aan de bovenkant zijn drie knoppen aanwezig waarvan 2 transparant met een rode en groene led die net als op een 1541 floppy drive de Power-on en diskactiviteit laat zien. De knoppen (vlnr) zijn voor "volgend bestand", "vorig bestand" en "reset" die ook meteen de hoofdmap selecteert. Als het volgend/vorig bestand een diskimage betreft kan hiermee een floppy wissel worden nagebootst.

Er zijn twee aansluitingen aanwezig, de blauwe connector wordt aangesloten op de cassettepoort (let daarbij op dat de markering "TOP" aan de bovenkant zit). Deze connector  levert de 5V voedingsspanning. Per ongeluk omgekeerd aansluiten levert geen schade op aan de Commodore computer. De andere aansluiting is de IEC DIN plug die in de floppy drive aansluiting wordt gestoken.

De software die op de SD moet worden geplaatst is te downloaden op thefuturewas8bit.com Als je er voor zorgt dat je op het geheugenkaartje als eerste bestand de filebrowser (fb) zet dan kun je deze direct laden en starten met LOAD"*",8:RUN
Je kunt nu op de Commodore met de pijltjes toetsen tussen bestanden en mappen navigeren en met een druk op de RETURN toets wordt het betreffende programma of disk image geladen.

Ook ondersteund deze SD2IEC oplossing diverse speed loaders zoals de al in een eerder blog beschreven JiffyDos en ook Geos, Final Cartridge III, Exos, Turbodisk, Epyx fastload, Speeddisk en Dreamload. Zie ook de sd2iec-info voor meer informatie.

Het standaard device nummer is 8. Aangezien deze al in gebruik is voor de VIC-1541 floppy drive, geven we deze nummer 9 m.b.v. het volgende commando:

OPEN 15,8,15:PRINT#15,"U0>"+CHR$(9):CLOSE 15

Deze wijziging kan nu permanent worden opgeslagen in het EEPROM geheugen m.b.v.:

OPEN 15,9,15:PRINT#15,"XW":CLOSE 15

Nu kunnen beide "floppy" drives naast elkaar worden gebruikt.

17 september 2021

Upgrade: C128 JiffyDOS

Na de ombouw van de VIC-1541 naar JiffyDOS is het tijd voor aanpassing van de C128. De originele JiffyDOS ROM's voor de C128 kunnen worden aangeschaft bij b.v. de Duitse Restore-Store. De laatste versie is 6.01 uitgebracht door CMD in 1989.

De bestaande ROM's die vervangen moeten worden zijn U32 (251913-01, C64 Kernal) en U35 (318020-03, C128 Kernal)

Deze ROM's hebben een geheugen capaciteit van 16k x 8 bits. Ze zullen worden vervangen door 32k x 8 bits EPROM's. (EPROM's zijn ROM's die kunnen worden geprogrammeerd en weer worden gewist m.b.v. UV licht). We kiezen hier voor type M27C256B, deze heeft dezelfde pin layout als de originele ROM.

Aansluitingen van de M27C246B

Deze EPROM is qua geheugencapaciteit 2x zo groot, dus passen zowel de originele ROM alsmede de JiffyDOS ROM in hetzelfde IC. Met adreslijn A14 (pin 27) kan dan tussen de originele ROM of de JiffyDOS ROM worden geschakeld m.b.v. een schakelaar die op de achterkant van de C128 kast wordt gemonteerd. A14 (pin 27) wordt dan met een 4k7 weerstand verbonden met +5V (VCC, pin 28). De schakelaar maakt via draden verbinding tussen A14 (pin 27) en de massa (VSS, pin 14). Dus bij een onderbroken schakelaar is A14 'H' via de pull-up weerstand en als de schakelaar verbinding maakt is A14 'L'. Dit kan voor beide EPROM's op dezelfde schakelaar.

Waarom beide ROM's en maken we deze schakelbaar? JiffyDOS gebruikt de ruimte in de originele ROM waar de routines voor de cassette tape zijn gehuisvest. Daardoor werkt de tape drive niet meer en offer je deze dus op voor een hogere floppy drive snelheid.

Als we alles hebben gesoldeerd kunnen de EPROM's in de voetjes worden gestoken (let daarbij op de juiste richting).

Verder is er nog een aanpassing noodzakelijk aan het moederbord. Door jumper J6 te verbinden wordt aangegeven dat er een 32k x 8 ROM wordt gebruikt in U32.

Jumper J6 kan worden doorverbonden met een soldeerbrug, maar ik heb ervoor gekozen om hier een (vanwege de beperkte hoogte) haakse jumper te solderen zodat de C128 weer gemakkelijk in originele staat kan worden teruggebracht.

Nu kunnen we alles gaan testen, eerst in de C128 modus. Met de schakelaar in de ene stand zien we het originele scherm (originele ROM):

Het lukt nog steeds om zonder fouten een directory te laden van de VIC-1541 floppy drive.
Hetzelfde doen we in de C64 modus via het commando Go64.

Nu starten we de C128 op, met de schakelaar in de andere stand en zien we dat de JiffyDOS actief is. Met het @ commando kan de status van de JiffyDOS op de VIC-1541 floppy drive worden opgevraagd en weten we of alles goed werkt.

We doen weer hetzelfde in de C64 modus.

De upgrade is geslaagd en nu is het tijd om te meten hoeveel sneller het geheel is geworden. Het laden van een programma van 39 blokken duurt met de originele ROM 24 sec. en met de JiffyDOS ROM slechts 5 sec. Dat is de moeite waard!

De JiffyDOS handleiding kan van de jbrain.com website worden gedownload.

13 september 2021

Upgrade: VIC-1541 JiffyDOS

Een nadeel van de VIC-1541 floppy drive is dat deze een ontwerpfout bevat die de floppy drive onnodig traag maakt. Er zijn een aantal verschillende oplossingen mogelijk om de floppy drive sneller te maken. Ik heb gekozen voor de JiffyDOS oplossing, omdat deze de hoogste compatibiliteit heeft met bestaande hard- en software en ook nog een handige uitbreiding bevat met z.g.n. DOS Wedge commando's waardoor het gebruik van de floppy drive veel handiger werkt. Zie https://www.c64-wiki.com/wiki/JiffyDOS voor meer informatie.

De JiffyDOS licentie is in handen van RETRO Innovations en ROMS kunnen worden gekocht bij b.v. de Duitse Restore-Store. Alhoewel in 1989 versie 6.01 is uitgebracht, bleef de functionaliteit voor de floppy drive ongewijzigd (versie 5.0).

Om alles te laten werken moet een bestaande ROM in de VIC-1541 worden vervangen en ook nog eens 2 ROM's in de C128. De VIC-1541 kan met de JiffyDOS overigens ook gewoon werken op een Commodore computer die niet is aangepast.

Als de kast is opengeschroefd zien we de interne printplaat.


De printplaat in mijn VIC-1541 is een z.g. shortboard PCB No 1540050 Rev C uit 1982. De ROM die vervangen moet worden is de 901229-03 ROM zoals hieronder is te zien. 


Deze ROM is gemarkeerd op de printplaat als UB4 en heeft 24 pinnen (DIP-24). De JiffyDOS ROM heeft echter 28 pinnen. Om dit op te lossen is er een vertaal printje bedacht met aan de bovenkant aansluitingen om de JiffyDOS ROM in te prikken en aan de onderkant 24 pinnen die weer in de de IC voet op de printplaat passen.

Deze vertaalprint is te bestellen bij het Chinese PCBWay voor ongeveer 1 Euro per stuk. (Minimaal 5 stuks afname).

Omdat de vertaalprint aan de rechterkant langer is, kan de ceramische condensator rechts van de IC voet in de weg zitten vanwege de hoogte. Dit is eenvoudig op te lossen door de condensator te desolderen en aan de onderkant van de printplaat weer te solderen.

Nu kan het geheel op de printplaat worden geplaatst.


Rest natuurlijk nog het testen van de floppy drive. Als eerste testen we deze met de nog niet aangepaste C128 en alles blijkt nog te werken.

In een andere blog volgt de aanpassing van de C128 voor de JiffyDOS ROM's.
Daarna kan de uitgebreide functionaliteit worden getest en kunnen we meten of de floppy drive sneller is geworden.

08 september 2021

Commodore home computers

De Commodore VIC-20 computer


Rond oktober 1981 kocht ik mijn eerste home computer, een Commodore VIC-20. 

In het tijdschrift Radio Bulletin uit april 1979 had ik al eerder kennis gemaakt de voorloper van de VIC-20: de Commodore PET en ik was al meteen verkocht. 

Toen later de VIC-20 verscheen heb ik met al mijn spaargeld deze aangeschaft met een cassette drive en nog later een floppy drive gekocht.

Ik weet nog dat de postbode aan de deur stond met een pakketje van ruim 1200 gulden dat onder rembours moest worden afgerekend, hij heeft wel 3x het geld nageteld... Ik ben nog tot diep in de nacht bezig geweest met de VIC, wat was dat een geweldige belevenis!

Ergens rond 1984 bouw ik mijn VIC-20 samen met mijn 1541 floppy diskdrive in een 19 inch rek, compleet met mogelijkheden om geheugenbanken bij te schakelen en uitgebreid voor aansturing van twee beeldschermen, waarvan 1 met 80 tekens per regel in plaats van de 22 tekens die de VIC origineel had.

Bovenop de 19 inch VIC-20 staat een Tandy TRS-80 monochrome groene monitor voor weergave van het  80x25 tekens display en rechts een kleine kleurentelevisie voor weergave van het normale VIC-20 scherm. De bovenkant van de oorspronkelijke VIC-20 is gebruikt als toetsenbord.

De Commodore 128 computer

In de loop der tijd is door een aantal opruim acties een en ander weggegooid waar ik natuurlijk later veel spijt van kreeg. Dus onlangs heb ik tweedehands de computer gekocht waar ik vroeger alleen van kon dromen: De Commodore 128 (C128), de laatste 8-bit computer die door Commodore is gemaakt.

Alle elektronica gaat uiteindelijk stuk. Om de C128 toekomst bestendig te maken rollen hier aan aantal projecten uit die ik in opvolgende blogs zal beschrijven:

  • Inspectie van de C128 met o.a. controle van de elektrolytische condensatoren.
  • Vervangen van de centrale koelplaat door individuele koelblokjes per chip.
  • JiffyROM kernal vervanging t.b.v. verbetering van de laadsnelheid.
  • Verbeteren van de beeldkwaliteit (onderdrukken van de z.g.n. jailbars) m.b.v. Lumafix128.
  • 64k geheugen uitbreiding voor de VDI chip.
  • Retrobrighten van de kast en de toetsen om de vergeling ongedaan te maken.

De cassette drive

In de jaren 80 was het ook heel gebruikelijk om je Commodore programma's op te slaan en terug te lezen op een cassette bandje d.m.v. een speciale cassette recorder. Nu ik toch weer met Retro Computing bezig ben leek het me handig om nog wat lege bandjes aan te schaffen en wat blijkt? Er zijn wereldwijd nog maar twee fabrikanten van cassettebandjes (en misschien nog een goedkope Chinese imitatie). Het ene is het Amerikaanse bedrijf "The National Audio Company" uit Springfield en de andere is het Nederlandse "De Bandjesfabriek" uit Lochem. http://www.debandjesfabriek.nl/
Overigens is Lou Ottens, de Nederlandse uitvinder van het Cassette bandje in maart van dit jaar overleden.
Zo zie je maar weer, de tijd vliegt soms zo ongemerkt snel voorbij, wat toen gewoon was is ineens (bijna) niet meer. En soms komt met een enkele herinnering het besef…

De VIC-1541 floppy drive

Een mooi voorbeeld van hoe de elektronica zich in de afgelopen jaren heeft ontwikkeld.


De grote kast (van binnen volgestouwd met elektronica) is de VIC-1541 floppy drive uit 1984 die je op een Commodore computer kon aansluiten. Op de 5.25 inch floppy ervoor kon je wel 174848 bytes aan opslag kwijt… Veel in die tijd. Daar boven op een versie van de “floppy drive” met moderne elektronica en in plaats van de floppy een geheugenkaartje. Deze kun je net als de oude drive op je Commodore aansluiten. Op dat geheugenkaartje passen ruim 355 duizend ! Commodore floppy’s, dus met gemak alle software die ooit voor de Commodore is gemaakt. En het stroomverbruik is terug gebracht van behoorlijk naar bijna niets. (De bril even ter vergelijking van de grootte).

Wat was het leuk om de software die ik 35 jaar geleden had geschreven weer terug te kunnen lezen van de floppy's die ik nog steeds had bewaard.

Door een ontwerpfout was deze floppy drive ontzettend traag dus ook hier rollen weer een aantal projecten uit om dit te verbeteren en net als de C128 deze toekomst bestendig te maken.
  • Vervangen van de elektrolytische condensatoren indien noodzakelijk.
  • Jiffy kernal ROM vervangen om hem sneller te maken.
  • Reinigen kop om het lezen/schrijven te verbeteren.
  • 240V modificatie om de hitte productie terug te brengen.

Meer in de volgende blogs.