Breakout game in ForthDeze pagina is deel van mijn zelfbouw-geschiedenis pagina's. Deze pagina is nog in opbouw (komt nog meer bij) Een van de eerste spelletjes die ik destijds in Forth gemaakt heb was een simpele versie van 'breakout', het klassieke spelletje om met een batje en balletje blokken uit een muur weg te schieten. De meest recente versie hiervan die ik terug heb gevonden op mijn oude disks was uit september 1982. Het was geschreven in mijn eigen variant van Forth ('MForth'), en werkte op mijn zelfbouw-computer gebaseerd op de Eurocom II. De Eurocom II had voor die tijd al behoorlijke grafische mogelijkheden, met een scherm van 512 x 256 pixels. Dit scherm was 'memory-mapped', en kon direct vanuit het programma geschreven en gelezen worden als een 16 Kbyte blok geheugen. Ieder byte was 8 pixels (wit=1, zwart=0), een lijn bestaat dus uit 64 bytes x 8 pixels is 256 pixels. Dit maakte het mogelijk eenvoudige graphics als voor breakout direct vanuit high-level Forth te programmeren, door waardes in het geheugen te schrijven (screen shots volgen nog een keer). Daarnaast had ik ook mogelijkheden voor geluid: op een lijn in een output-poort had ik een speakertje aangesloten, en door deze lijn aan en uit te zetten kon ik het speakertje geluid laten maken (als je de lijn 1000 keer per seconde aan en weer uit zet heb je een pieptoon van 1000 Hertz). Ook de geluidseffecten werden hiermee dus in Forth geprogrammeerd. Besturing ging via een draaiweerstand, zoals ook in het oorspronkelijke spel: door aan de knop te draaien kon je de paddle bewegen. De Eurocom II had hiervoor een simpele A/D-mogelijkheid, die twee zulke draaiweerstanden tegelijk kon meten (hiervoor had mijn Forth het ingebouwde commande 'JOYADC' gekregen). Wil je de listing zien? Bekijk hier het breakout programma in MForth. De uitleg komt nog een keer; het commentaar in de listing is erg summier, zeker als je de Eurocom II (of Forth) niet kent. |
op mijn site |