Het oneindige doolhof
De beroemdste one-liner van de C64: twee schuine streepjes die willekeurig naast elkaar komen te staan en zo een doolhof tekenen dat nooit ophoudt.
10 print chr$(205.5+rnd(1));:goto 10 run
De legendarische breadbin uit 1982: draait volledig in je browser. Druk op start en laad de demo.
Paginaversie 1.7 · laatst gecontroleerd op 30-08-2026
Heb je zelf een .prg, .d64 of .zip? Sleep die op het scherm hierboven. Het bestand blijft in je browser en wordt niet naar de server gestuurd.
Typ 6502-assembly, druk op de knop en het draait in de emulator hierboven. De assembler zit in deze pagina en werkt in je eigen browser: er gaat geen letter naar de server. Hij kent labels, constanten, de gewone adresseringsvormen en .byte, .word en .fill, en zet er een BASIC-start (10 SYS 2064) voor zodat RUN je programma start.
Tekst hoef je niet in hex uit te rekenen: .screen "HALLO" zet de schermcodes neer (die poke je rechtstreeks in $0400) en .petscii "HALLO" de PETSCII-codes (die stuur je naar CHROUT). Getallen en tekst mogen door elkaar: .screen "SCORE", 32, "0". Kleine letters worden hoofdletters, want dat is wat de standaard tekenset laat zien. Sneltoets: Ctrl+Enter assembleert en start.
Dit is vc64web (een web-port van VirtualC64), volledig lokaal gehost op TechSpeeltuin: geen externe afhankelijkheden. Hij boot met de originele Commodore-ROM's, dus je krijgt het echte COMMODORE 64 BASIC V2-scherm.
Emulator: vc64web , de web-port (WASM) van VirtualC64 door Dirk W. Hoffmann. Open source, hier lokaal gehost.
Achter de START DEMO-knop zit een zelfgeschreven intro in 1990-stijl, een eerbetoon aan de cracktro's en demo's van de C64-demoscene (sinds 2021 zelfs UNESCO-cultureel-erfgoed). Alles draait op de échte 8-bit hardware: 64 KB RAM, 16 kleuren, 40 kolommen.
Wat je ziet en hoort:
< / >-sprites (het TechSpeeltuin-motief) die op een sinus meebewegen. De intro is met de hand geschreven in 6502-assembly (Kick Assembler) en tot een enkele .prg geassembleerd.
De emulator vertaalt standaard op teken: typ je een -, dan komt er een - op de C64. De meeste toetsen doen dus gewoon wat erop staat. Deze wijken af:
| C64-toets | Op jouw toetsenbord | Waarvoor |
|---|---|---|
| RETURN | Enter | Regel afsluiten, commando uitvoeren |
| INST/DEL | Backspace | Teken terug wissen |
| ← (linksboven) | Delete | Eigen C64-teken, geen backspace |
| ↑ | ^ (dode toets) | Machtsverheffen in BASIC |
| CTRL | Tab of linker Ctrl | Kleur wisselen, uitvoer vertragen |
| Cursor | Pijltjestoetsen | Over het scherm bewegen |
| F1 t/m F8 | F1 t/m F8 | Functietoetsen |
| RUN/STOP, RESTORE, C=, CLR/HOME, £ | Schermtoetsenbord | Zitten niet op een pc-toetsenbord: gebruik de knop Toetsenbord hierboven |
Wil je de originele indeling (elke toets op zijn eigen plek, dus - geeft +), zet dan in de toolbar onder Settings de schakelaar symbolic mapping uit.
Handig om te weten in BASIC V2:
RUN start het programma dat in het geheugen staat, LIST laat het zien.NEW gooit het programma weg, SHIFT+CLR/HOME maakt het scherm leeg..d64) geladen: LOAD"$",8 gevolgd door LIST toont de inhoud. Zo ging dat vroeger: een listing uit een tijdschrift overtypen en RUN intoetsen. Typ het over op de C64 hierboven, of laat de pagina het voor je doen. Dat laatste start zo nodig eerst een kale C64 en tikt daarna de regels in, teken voor teken.
De beroemdste one-liner van de C64: twee schuine streepjes die willekeurig naast elkaar komen te staan en zo een doolhof tekenen dat nooit ophoudt.
10 print chr$(205.5+rnd(1));:goto 10 run
Rechtstreeks in het geheugen schrijven: adres 53280 is de schermrand, 53281 de achtergrond. Zo werkte bijna alle grafische truc op deze machine.
10 poke 53280,rnd(1)*16 20 poke 53281,rnd(1)*16 30 for i=1 to 40:next i 40 goto 10 run
Willekeurige tonen op stem 1 van de SID-chip: volume open, envelope instellen, toonhoogte kiezen en de golf aan- en uitzetten. Zet je geluid aan; hoor je niets, kijk dan of de waarschuwing hierboven bij de emulator staat.
10 poke 54296,15 20 poke 54277,9:poke 54278,240 30 poke 54273,int(rnd(1)*40)+10 40 poke 54276,17:for i=1 to 60:next i 50 poke 54276,16:for i=1 to 30:next i 60 goto 30 run
Alle drie draaien eeuwig door. Stoppen doe je met RUN/STOP op het schermtoetsenbord, of met de knop Reset.