# Bally Astrocade

L'Astrocade è una console giochi sviluppata nel 1977 da Midway, la divisione videogiochi di Bally Technologies. La console fu commercializzata da Midway per un periodo limitato di tempo dato che Bally decise di lasciare il mercato dei videogiochi poco dopo la sua introduzione; i diritti sull'Astrocade furono in seguito acquistati da un'altra società che la produsse fino al 1983. Scomparve definitivamente nel 1985.
La console poteva diventare un semplice computer mediante l'utilizzo di un'espansione esterna ed era nota principalmente per le sue capacità grafiche che risultavano, comunque, difficili da gestire.

## Storia

Denominata originariamente come Bally Home Library Computer, fu presentata nel 1977 ed ordinabile inizialmente solo tramite posta ma ritardi nella produzione fecero slittare l'inizio delle spedizioni al 1978. Durante questo lasso di tempo Midway ne cambiò il nome in Bally Professional Arcade ed iniziò a venderla anche e soprattutto tramite i negozi specializzati. La console, nonostante le sue capacità grafiche di prim'ordine, non riscosse il successo ottenuto dai prodotti della concorrenza, primo fra tutti l'Atari VCS. Nel 1979 Bally perse interesse nel settore degli arcade e decise di vendere la sua divisione dei prodotti di consumo, che includeva il reparto per lo sviluppo e la produzione delle console da gioco.
Nello stesso periodo un'altra società, Astrovision, aveva provato senza successo ad imporre sul mercato una propria console giochi. Un intermediario di Montgomery Ward, che gestiva la vendita del sistema di Bally, mise in contatto le due società, che si accordarono per la cessione dei diritti sulla console. Nel 1981 Astrovision ne iniziò quindi la distribuzione con il nome di Bally Computer System, con inclusa gratis la cartuccia del BASIC. Nel 1982 alla console fu nuovamente cambiato il nome nel definitivo Astrocade, che conservò fino al 1983 quando, con la crisi che colpì il settore dei videogiochi, la console fu tolta dal commercio, per scomparire definitivamente nel 1985.

## Espansioni

Dopo l'inizio della commercializzazione, Midway diede inizio allo sviluppo di un sistema di espansione per l'Astrocade denominato ZGRASS-100 che poteva trasformare la console in un semplice home computer. Il sistema fu progettato da un gruppo di sviluppatori dell'Università dell'Illinois a Chicago conosciuto come Circle Graphics Habitat insieme ad alcuni programmatori di Dave Nuttings Associates, un'altra società del gruppo Bally. Midway pensava che un tale sistema, esterno alla console, avrebbe reso l'Astrocade molto più interessante dal punto di vista commerciale. Il gruppo di tecnici lavorò anche su un sistema da offrire come unità indipendente, che Bally avrebbe poi offerto come piccolo home computer, il Datamax UV-1. Questo sistema, durante la progettazione, fu poi rivisto ed alla fine dello sviluppo fu offerto come sistema grafico ad alta risoluzione per registrazioni su videocassette. Fu messo in vendita nel 1980.
Quando Bally decise di uscire dal mercato dei videogiochi, lo sviluppo dello ZGRASS-100 fu interrotto e i diritti sulla console furono venduti. Dopo l'acquisizione dell'Astrocade, Astrovision rispolverò il progetto e rielaborò un proprio sistema di espansione derivante dallo ZGRASS-100, più compatto e pratico di quest'ultimo, che fu messo in vendita come ZGRASS-32. Di esso non sono noti i dati di vendita.

## Descrizione

Alla fine degli anni settanta Midway contattò Dave Nutting Associates per sviluppare un sistema grafico che potesse essere utilizzato in tutti i suoi sistemi di videogioco, dagli arcade agli home computer. Ciò che Nutting sviluppò resta senz'altro uno dei più potenti sistemi grafici dell'era dei computer ad 8 bit, venendo utilizzato in molti dei giochi arcade di Midway dell'epoca, come Gorf o Wizard of Wor.
Questo sistema era basato su un processore Zilog Z80 che pilotava un chip grafico: i due chip utilizzavano un buffer RAM in comune. Il chip grafico gestiva 2 modalità: una a bassa risoluzione, di 160×102 pixel, ed una ad alta risoluzione, di 320×204 pixel, entrambe con 4 colori memorizzati in due bit per pixel. Questa combinazione di colore/risoluzione era al di fuori delle capacità della RAM dell'epoca, che non era in grado di fornire i dati ad una velocità tale da poter stare ai passi con il segnale video inviato alla TV. Il chip grafico utilizzava perciò un "trucco" per aggirare questo problema: caricava in un veloce buffer interno i dati corrispondenti ad una "linea" video, da cui poi erano letti ed inviati alla TV. Grazie a ciò il chip grafico interferiva anche meno con il lavoro della CPU, che utilizzava, come detto, la stessa memoria per i propri dati.
Sfortunatamente, sull'Astrocade fu scelto di non connettere i pin necessari per utilizzare questo "trucco", impostando la console per lavorare solo alla risoluzione più bassa. In questa modalità occorrevano 160×102×2 bit = 4.080 byte di memoria per conservare i dati relativi all'immagine: dato che la macchina aveva solo 4 Kilobyte di RAM, rimaneva ben poco spazio da usare per i programmi. I giochi venivano perciò piazzati generalmente su ROM, e la RAM libera era utilizzata per memorizzare il punteggio o le opzioni del giocatore.
L'Astrocade utilizzava per i colori dei registri, o color indirection come spesso erano indicati, per cui i 4 colori potevano essere selezionati da una tavolozza di 256. L'animazione del colore era possibile cambiando i valori dei registri ed utilizzando una tecnica denominata horizontal blank interrupt era possibile farlo riga per riga. Il sistema grafico permetteva inoltre di poter cambiare l'insieme dei 4 colori utilizzati su una determinata riga in un punto qualsiasi della stessa. Questa caratteristica, che permetteva di ottenere una sorta di divisione verticale dello schermo in due metà, era stata pensata inizialmente per permettere la creazione di una specie di "area punteggio" su un lato dello schermo, dove riportare i punti del giocatore ed altri dati quali, ad esempio il numero di vite o i bonus raccolti, e visualizzarli con colori differenti ma alla fine fu utilizzata dai programmatori per emulare una modalità ad 8 colori.
A differenza dell'Atari VCS, l'Astrocade non includeva il supporto hardware agli sprite: presentava invece un sistema di tipo blitter gestibile via software. La memoria oltre l'indirizzo 0x4000 era dedicata al video mentre quella sotto alla ROM. Se un programma tentava di scrivere nello spazio della ROM (impossibile per definizione, dato che la ROM è a "sola lettura"), il chip video intercettava i dati, gli applicava una funzione e poi memorizzava il risultato finale nella corrispondente locazione del banco RAM. La funzione da utilizzare era memorizzata in un registro del chip video ed includeva funzioni comuni come lo XOR o lo spostamento bit-per-bit. Grazie a ciò l'Astrocade poteva supportare un numero indefinito, non dipendente dall'hardware, di "sprite", con l'unica limitazione che era poi il software a doverli ridisegnare una volta che essi venivano spostati.
L'Astrocade fu uno dei primi sistemi basati su cartuccia: quelle utilizzate dalla console erano chiamate Videocades per il fatto che la loro fattezza ricordava molto una comune musicassetta. L'Astrocade includeva inoltre preinstallati in ROM due giochi, Gunfight e Checkmate, una Calcolatrice ed un programma per creare semplici disegni denominato Scribbling.
L'Astrocade presentava un dispositivo di controllo dell'input relativamente complesso, che incorporava diversi tipi di meccanismi di controllo: il controller di gioco aveva un'impugnatura simile ad una pistola con un interruttore a grilletto sulla parte anteriore; sulla sua parte superiore trovava alloggio un piccolo joystick a 4 interruttori/8 vie, con l'asta del joystick collegato ad un potenziometro, così da trasformarlo in una specie di paddle.
Sul lato frontale della console c'era una tastiera a 24 tasti utilizzata per selezionare i giochi e le opzioni: molte cartucce includevano più di un gioco e, quando venivano inserite, la macchina si resettava e visualizzava un menu che presentava prima i programmi presenti sulla cartuccia e poi i 4 residenti in ROM. Sul lato posteriore della console c'erano diverse porte di collegamento, comprese quelle per i connettori di alimentazione, per i controller e quella di espansione. Stranamente la parte posteriore superiore della console era vuota, e poteva essere aperta per inserirci fino a 15 cartucce. La possibilità di aggiornare il sistema da semplice console a personal computer e la disponibilità di circa 30 giochi sono le ragioni per le quali, nel 1982, tale sistema era molto più versatile dei suoi diretti concorrenti, suggerendo a Jeff Rovin di inserirlo nella lista dei 7 maggiori fornitori di giochi.

## BASIC

La console venduta da Astrovision includeva nella confezione una cartuccia contenente il linguaggio di programmazione BASIC, basato sul Palo Alto Tiny BASIC di Li-Chen Wang, derivato dal Tiny BASIC . Far gestire il BASIC all'Astrocade fu molto difficile perché già il buffer video portava via quasi tutta la memoria disponibile. La soluzione adottata fu molto complessa, anche se molto semplice nella sua ideazione.
I programmi in BASIC venivano memorizzati nella RAM video alternando i bit del programma con i bit dell'immagine: il BASIC utilizzava tutti i bit pari mentre per l'immagazzinamento dei dati video venivano usati quelli dispari. L'interprete leggeva 2 byte, eliminava tutti i bit dispari ed univa i restanti per ricomporre un singolo byte di codice. Questa gestione delle informazioni era resa invisibile all'utente impostando due colori sulla stessa tonalità: i colori 01 e 11 erano entrambi impostati sul bianco, così che la presenza o meno di un bit del codice BASIC non sortiva nessun effetto sullo schermo. Altra memoria era recuperata utilizzando meno linee verticali: la risoluzione passava infatti da 102 a 88 pixel. Alla fine tutti questi accorgimenti permettevano di ottenere 1.760 byte di RAM per i programmi BASIC. Il rovescio della medaglia era che molte delle caratteristiche grafiche della macchina non erano disponibili.
I programmi erano inseriti attraverso la tastiera della console assegnando ad ogni tasto un singolo comando, un numero e diversi caratteri alfanumerici: questi erano selezionati mediante l'ausilio di quattro tasti di scambio colorati. Ad esempio, per ottenere la parola chiave GOTO l'utente doveva premere il tasto con la scritta oro "Word" ("parola") e poi il tasto "+".

## ZGRASS

L'unità di espansione ZGRASS si inseriva sotto all'Astrocade, trasformando quest'ultima in un vero computer: essa integrava infatti una tastiera completa, un coprocessore matematico (FPU), 32 kB di RAM ed una nuova ROM da 32 kB contenente il linguaggio di programmazione GRASS (alle volte indicato come GRAFIX). L'unità presentava inoltre delle nuove porte atte a collegare un lettore di cassette ed un'unità per floppy disk, permettendo l'utilizzo del sistema operativo CP/M.

## Caratteristiche

* CPU: Z80, 1,789 MHz
* RAM: 4 kB (fino a 64 kB tramite apposite espansioni)
* ROM: 8 kB
* Cart ROM: 8 kB
* Espansione: 64 kB totali
* Porte: 4 per controller, 1 per espansione, 1 per penna ottica
* Suono: 3 voci + effetti rumore/vibrato (tramite la TV)

### Video

* Risoluzioni: 160×102 / in BASIC 160×88 / con RAM espansa 320×204 pixel
* Colori: 4 oppure 8 / in BASIC 2
** Il chip grafico dell'Astrocade memorizzava i colori utilizzando 2 bit di memoria, permettendo quindi di gestire 4 colori. Il chip era anche in grado di gestire lo schermo diviso in due metà verticali, indipendenti l'una dall'altra (questa modalità era stata pensata nell'ottica di utilizzare la metà sinistra per mostrare lo schema di gioco e quella di destra per visualizzare punteggi, vite rimaste ed altre informazioni di gioco), ognuna con la possibilità di avere un insieme di quattro colori differenti, per cui il numero totale di colori visualizzabili contemporaneamente sullo schermo era di 8.
* Tipologia: Bitmap

## Software

* Datsun 280 ZZZAP / Dodgem (1977)
* Amazing Maze / Tic Tac Toe (1977)
* Artillery Duel (1982)
* Astro Battle (1977)
* Astrocade Basic (1980)
* Astrocade Pinball (1980)
* Bally Pin (1980)
* Baseball
* Basketball (1978)
* Bingo Math / Speed Math
* Biorythm (1980)
* Blackjack / Poker / Acey-Deucy (1978)
* Blast Droids (1980)
* Bowling
* Checkers / Backgammon (1978)
* Checkmate (1978) preinstallato nella console
* Clowns / Brickyard (1979)
* Coloring Book
* Conan The Barbarian
* Cosmic Raiders (1980)
* Creative Crayon (1978)
* Dog Patch (1977)
* Drag Race / Desert Fox (1978)
* Elementary Math / Bingo Math (1978)
* Football (1978)
* Galactic Invasion (1980)
* Galaxian
* Grand Prix / Demolition Derby (1980)
* Gun Fight (1978) preinstallato nella console
* ICBM Attack
* Incredible Wizard (1980)
* Letter Match / Spell 'N Score / Crosswords
* Machine Language Manager (1982)
* Mazeman
* Median
* Missile Attack
* Ms. CandyMan (1983)
* Muncher (1980)
* Music Maker (1980)
* Panzer Attack / Red Baron (1978)
* Pirate's Chase (1982)
* Scribbling (1978) preinstallato nella console
* Sea Devil (1983)
* Seawolf / Missile (1978), ripubblicato anche come Seawolf / Bombardier (1979)
* Sneaky Snake (1983)
* Soccer (1980)
* Solar Conqueror (1983)
* Space Fortress (1981)
* Space Invaders (1979)
* Star Battle (1979)
* Tornado Baseball / Tennis / Hockey / Handball (1978)
* Treasure Cove (1980)