GORILLA.BAS port to CP/M in Turbo Modula-2. Supported terminals: VT52, VT100, ANSI, ADM-31, KayPro, C128, Memotech monochrome, CPC / Zenith Z19
Switch branches/tags
Nothing to show
Clone or download
Latest commit a10cb1c Jun 15, 2018
Failed to load latest commit information.
binary Added chr(255) as block char Jan 2, 2017
dists CPC Update: cursor ON/OFF Aug 18, 2016
source Added chr(255) as block char Jan 2, 2017
LICENSE Initial commit Dec 11, 2015
README.md Update README.md Jun 15, 2018


Gorilla.BAS - CP/M version

This is a Modula-2 (despite the name) implementation for CP/M of the classic "GORILLA.BAS" BASIC game included in MS-DOS 5.0.

Why Turbo Modula-2?

The choice was mainly due to a historic interest: this compiler (never distributed by Borland) was written by Martin Odersky (the inventor of Scala language) and had never been used by a critical mass of users. So it was both a challenging choice and a historic research.

Contents of package

  • source - Source code in Turbo Modula-2 (despite the name ".BAS")
    • xterm.def - XTerm Library: definition module (for terminal portability)
    • xterm.mod - XTerm Library: implementation module
    • game.def - Game Engine: definition module
    • game.mod - Game Engine: implementation module
    • main.mod - Main module (run this)
  • binary - Compiled .COM executable files for CP/M-80
  • dists - Collection of CP/M bootable disk images for Commodore 128 and Memotech MTX
    • gorilla.d71 - Includes C128 CP/M boot code, all sources and binaries, some utilities
    • gorilla.d64 - Includes C128 CP/M boot code, all sources and binaries
    • gorilla.mfloppy - Includes Memotech MTX CP/M boot code and binaries (Memotech type 07 disk image)
    • gorilla-msx.dsk - Includes MSX-DOS boot code and binaries (MSX-DOS disk image)
    • gorilla-cpc.dsk - Includes CP/M for Amstrad CPC6128 boot code and binaries (CPC CP/M disk image)


Thanks to Fabrizio Radica for the idea, YAZE Team for the fantastic Z80 emulator that runs fine on Mac OS X, Lawrence Woodman for sharing informations about CP/M and Turbo Modula-2, Dave Stevenson for sharing informations about Memotech MTX and to Sergio Gervasini and Stefania Calcagno for support.

In-game screen on Commodore 128


Intro screen on Amstrad CPC 128


Multiple platforms: C128 / Amstrad CPC6128

Multiple platforms

Intro screen

C128 version

Game screen - 1

C128 version

Game screen - 2

C128 version