BallyAlley_r1_c1.gif BallyAlley_r1_c2.gif BallyAlley_r1_c4.gif
BallyAlley_r2_c1.gif BallyAlley_r2_c2.gif BallyAlley_r2_c4.gif
     According to the ZGrass Owner's Manual, there is a specific order that the Z-Grass manuals should be read. Read the correct order here. Of course, this is just a reference. Since there is also documentation included here that the manual doesn't mention, feel free to browse and read in any order!

BASIC ZGrass-- A Sophisticated Graphics Language for the Bally Home Library Computer

BASIC Zgrass--A Sophisticated Graphics Language for the Bally home Library Computer

Tom DeFanti, University of Illinois at Chicago Circle
Jay Fenton, Dave Nutting Associates
Nola Donato, University of Illinois at Chicago Circle


     Home computer users are just now discovering computer graphics. Modest extensions to BASIC allow plotting but not much more. The Bally Home Library Computer, however, has hardware to aid implementation of video games. Custom integrated circuits working on a 160X102 pixel (2 bits per pixel) color television screen allow certain forms of animation in real time. To give this power to the user, BASIC Zgrass has been designed and implemented. It is an extension of BASIC that allows parallel processes, picture objects that move, scale and group together as well as several drawing modes. There are also software controls of a three-voice music synthesizer, interactive input devices, a film camera and an IEEE bus interface. We will concentrate mainly on the language design for making it all easy to learn and use.

Article from: Computer Graphics, 12, no. 3, (August 1978): 33-37
Extended Memory Use in the ZGrass System

Written by Dr Thomas DeFanti.

     Computing has always been faced with the choice of optimizing for time (computer power) or space (memory). Real-time computer graphics is most likely the subset of computing that must choose between space and time most effectively. This paper describes in detail the evolved techniques of software memory management used by the Zgrass system to allow a slow (1.7mhz) Z-80 to be the processor for a useful computer animation workstation with at least 300K and up to 1472K bytes of memory. Conclusions will be drawn as to the applicability of these techniques to the new 16-bit microprocessors with memory management.


     The system being described here is formally called the Datamax UV-1. Since its software is called Zgrass, an earlier version of which is described in "Language Control Structures for Easy Electronic Visualization" (Byte Nov 1980), we will refer to it as the Zgrass system. It actually started as a home computer graphics system in 1977 and later, after having been rebuilt for the cable television industry, became an artist's workstation for video production. The Zgrass system was developed to make people want to program by providing rich animated feedback with few initial barriers, yet give the user the ability to unravel layers upon layers of built-in sophistication when and if the desire arose. Rather extensive testing of the software has occurred at the University of Illinois at Chicago and the School of the Art Institute of Chicago where hundreds of art and engineering students have used it for the past several years and about 100 systems exist at this point. It is a system that encourages the writing of software tools as extensions to the command language and it makes possible the performance of real-time interactive visuals. Most of the systems are used by artists most of whom have become programmers over the years.
GRASS Picture Creation

     This program is designed to help you learn about the graphics symbiosis system (GRASS). The intention is to provide you with the fundamental knowledge and skills necessary to allow you to use the system. It is not intended to provide you with a complete description of all the possible ways in which the system could be used. That would be impossible because the uses of the system are limited only by your own imagination.

     There are three parts to this program. Depending on your present knowledge of the system, you may wish to go through all, or only some, of these. The first part will teach the commands, and allow practice in the skills necessary, to create pictures. The second part will do the same for picture manipulation. The third part will be on "macro" writing. Each part will assume knowledge of the proceeding parts.

     The eighteen pages are broken into six sections:

1.0 - Using the System
1.1 - Picture Creation Commands
1.2 - Variables, Expressions, Operators and Loops
1.3 - GRASS Storage
1.4 - Macros
1.5 - Editing

A text file of the above information is available here: GRASS Picture Creation.

This document has been been bookmarked in Acrobat for ease of reading.
Western Digital WD1770 Floppy Controller Datesheet (1-Page)
Western Digital WD1770 Floppy Controller Datesheet (18 Pages)

      These are datasheets for the Western Digital WD1770 Floppy Controller used in the Viper [ZGRASS] unit. The one-page version of the datasheet is from a datasheet that was included with a book compiled by the ZGRASS Information Group for Bob Fabris. The much more complete second datasheet, for the same controller, is from a Commodore website. It seems that one (or more) of the Commodore 8-bit disk drives used the same floppy controller.
"ZGRASS-100 Computer Expansion"

The Zgrass-100 Expansion plugs into the Arcade to give you a full typewriter keyboard with expanded memory. The memory capacity of the Astrocade Professional Arcade with the Zgrass-100 Expansion is 32k ROM, 4k Screen RAM and 64k User RAM, bringing the total memory to 100k. The 32k ROM contains the powerful Zgrass system software that makes this the easiest computer to learn and use. The 4k Screen RAM provides dynamic storage of the screen image. And, the 64k RAM gives you more space for creating and storing programs and pictures.

The Zgrass operating system has been designed to take full advantage of all the hardware power of your arcade's unique three-processor system. With the Zgrass-100 expansion, your arcade becomes the ideal personal computer and the most powerful system available for creating fast-action games, versatile educational aids and colorful animated graphics.

  1. "ZGRASS-100 Computer Expansion" - Text version (missing a difficult-to-OCR table)
ZGRASS Glossary Manual (Preliminary)
March 18, 1981

      The preliminary version of this manual is only about 2/3 of the size of the finished manual.
  1. Buzzwords - Common computer terms
  2. Commands
  3. Esoterica - Advanced features for experienced programmers
  4. Functions - Must be gotten from disk or tape
  5. Idiosyncrasies - Concepts and features peculiar to or specifically modified for ZGRASS
  6. Swap Commands - Must be gotten from disk or tape
  7. Swap Functions - Must be gotten from disk or tape
  8. Switches - Modify commands
ZGRASS Glossary Manual
February 12, 1982

      ZGRASS Glossary of:
  1. Buzzwords - Common computer terms
  2. Commands
  3. Esoterica - Advanced features for experienced programmers
  4. Functions - Must be gotten from disk or tape
  5. Idiosyncrasies - Concepts and features peculiar to or specifically modified for ZGRASS
  6. Swap Commands - Must be gotten from disk or tape
  7. Swap Functions - Must be gotten from disk or tape
  8. Switches - Modify commands
ZGRASS Help Document

      This document was probably originally a dump to the printer by someone typing HELP for each of the commands. The forty-three page ZGRASS Help has been broken into six major sections. The document is a little difficult to read since not all of the commands are in alphabetical order and there are error messages throughout the text (some are quite amusing, so read them if you get the chance).

The PDF document has been bookmarked so that it is easier to read. It is highly recommend that you use these bookmarks, as they will make reading the document much more pleasant. The major sections of the document are:

1) Device Conventions in GRASS2
2) Writing Macros in GRASS
3) Creating Pictures in GRASS
4) Arithmetic Programming (Fortran-Style Syntax)
5) Commands (All 92 of them!)
6) Error Messages

A complete listing of the bookmarks, including the 92 ZGRASS commands, is included here: Help Bookmarks.
ZGRASS Lessons Manual
October 27, 1981

     Zgrass is a graphics programming language. It is probably closer to BASIC than any other language, yet it is much more flexible and general than BASIC. The presumption in these lessons is that you already know how to program BASIC (at least BALLY BASIC) and are familiar with loops, IF's, GOTO's, variables, and so on, and are ready to learn what makes Zgrass tick. The essential differences between Zgrass and BASIC are:

  1. Zgrass allows any number of programs and subroutines, each named, and they can run in series or parallel. BASIC has one unnamed program and a lot of GOSUB's.
  2. Zgrass has an interactive full-screen editor. BASIC edits with line numbers.
  3. Zgrass has good ways of passing arguments to subroutines; BASIC has none.
  4. Zgrass can construct programs and run them with string manipulation features; BASIC cannot.
  5. Zgrass has excellent debugging aids: single step, run-time listing, and error trapping; BASIC doesn't.
  6. Zgrass has fast, advanced graphics commands; most BASICs use peek and poke.
  7. BASIC has FOR/NEXT. Zgrass does without.
     In order to learn Zgrass, you will have to explore it. Fortunately, this is not hard and is very rewarding. These lessons are to help you start exploring. They don't teach you how to program or write games, they just present the tools to you and encourage you to build your own. The first six lessons concentrate on defining the playing field. Pay close attention!

     If you find a word being used that you do not understand, consult the Glossary. Once you get through the lessons, read the Glossary in detail. You'll find yourself understanding some of the esoterica. Some of the advanced features you may never use or understand and it may take awhile for you to see why some of the diversions from BASIC were necessary. Before long, however, you will find going back to BASIC unbearable.

     Just to get you started, there's a test program called NB in the system. Press the red RST on the UV-1 front panel and answer Y. Then type the two letters NB and press the RETURN key. An image will appear. Type NB and press RETURN again. The image will undo itself. For more action, type NB.B and press RETURN. You can stop this by pressing the CTRL (called CONTROL on some keyboards) key, holding it down and simultaneously pressing the C key. Have fun!

All Lessons:

     0 - Read Me First
     1 - Getting Started
     2 - Writing Macros
     3 - Editing
     4 - More on Macros
     5 - Storing Macros on Tape and Disk
     6 - Debugging
     7 - Device Variables and Ports
     8 - Arrays
     9 - More on Graphics
     10 - Swap Modules
     11 - Advanced Concepts

Read the complete lesson 0: Lesson 0 - Read Me First.

This document has been been bookmarked in Acrobat for ease of reading.
ZGrass Operator's Manual
June 1, 1982

      This manual instructs you on the set-up and testing of the computer and connection of peripheral devices. In addition, it provides you with important information about operating the system... such as, the hardware features and specifications; basic disk and audio tape management techniques; graphic considerations; etc.

     The included chapters are:

1 - Introduction
2 - Hardware Features
3 - Initial Set Up
4 - System Power-Up
5 - UV-1 ZGRASS System Configuration
6 - Peripheral Device Configuration
7 - Troubleshooting
8 - Index of System Tests

This document has been been bookmarked in Acrobat for ease of reading.
ZGRASS Paint Program User's Guide
March 12, 1982 (Preliminary Version)

     You are about to experience an interactive painting system that will enable you to immensely expand your creative drawing and image development capabilities. With the help of this guide, you'll find the system simple to use and rich in capabilities.

     The Zgrass PAINT PROGRAM USER'S GUIDE has been designed to guide you through an interactive experience with all modules of the Paint Program in a sequence which will prepare you to use each module as you encounter it. If you take the time now to experiment with the Paint Program system as instructed in this guide, you'll minimize the amount of time you spend learning how to use the system to maximum capacity. If you are a neophyte in the world of computers, you'll find this a pleasant and relatively painless introduction to working with computers.

     In general, this guide is set up to be followed in a step-by-step manner, explaining what's happening as you engage in new activities in each module. As you become more comfortable with the controls and various means of interacting with the system, you may find repetitive instructions tedious or boring. On the other hand, if you're shaking in your boots because it's the first time you've dealt with a computer, you'll probably find the repetition comforting. To minimize the amount of repetition, those concepts or activities which come into play frequently or require special explanation have been presented in the GENERAL REFERENCE SECTION of this guide and are referred to accordingly within the body of the guide.

Sections of this document include:

1 - Getting Started
2 - General Reference Section
3 - Group - 1) Basic Drawing Brushes
4 - Group - 2) Colormap Selection & Storage
5 - Group - 3) Making & Using Snaps
6 - Group - 4) Line & Snap Animation
7 - Group - 5) Utility Modules

A text file of the above information is available here: ZGRASS_Paint_Program_Users_Guide_(About).

This document has been been bookmarked in Acrobat for ease of reading.
ZGrass TRANS Package: Software Tools for Three-Dimensional Vector Graphics
January 12, 1983

      The Zgrass TRANS PACKAGE, generally referred to as TRANS for short, is a set of macros and swap modules designed for modeling three-dimensional vector (wire-frame) objects on the Datamax UV-1 Zgrass Graphics System. It is targeted for people who are familiar with the basic programming concepts of the Zgrass language, as well as three-dimensional coordinates, and geometric transformations.

      The basic approach to TRANS involves three steps:
  • Object Creation: objects are defined by storing the values of X, Y, Z, and COLORMODE in 2-dimensional arrays. The macro GETOBJ offers a menu of macros which can be used to define wire-frame objects.

  • Transformation Definition: geometric transformations are defined through the use of commands such as HOME, MOVE, ROT, SCALE3D, and SHEAR. Successive operations are multiplied together and saved in a transformation array.

  • Image Display: images are displayed by (optionally) applying the transformation array to the coordinates as the vectors are drawn on the screen with the commands TDISP and ODISP. Simple perspective can be used to clarify the three-dimensional nature of the images with the PDISP command.
      Screen animations are easily created with incremental transformations displayed on different screens. These are played back by 'flipping' through the screens in sequence with the FLIP command. The DEMO macros illustrate this technique.
      The TRANS Package consists of:

  1. Getting Started with TRANS
  2. Introduction
  3. Using the TRANS Package
  4. Programming Notes:
    • Array Types and Data Structures
    • Space Considerations
    • The Coordinate System
    • Creating Objects
  5. Summary of TRANS Commands
  6. ZGRASS TRANS Package Glossary
The complete introduction is included here: ZGRASS TRANS Package Introduction.

This document has been been bookmarked in Acrobat for ease of reading.
BallyAlley_r4_c1.gif BallyAlley_r4_c2.gif BallyAlley_r4_c4.gif