An In-Depth Look At… Series: A Supplement to the “Nutting Manual”

An In-Depth Look At… Series: A Supplement to the “Nutting Manual”
By MCM Design (Michael Matte).

This multi-part programming tutorial series, first “published” online in July 2019, focuses on programming in Z80 assembly language and machine language. Special attention is paid to specifically programming the Bally Arcade/Astrocade, with an in-depth look at the “Nutting Manual” Specific instructions, Z80 programming examples and links to useful Astrocade/Z80 documents are provided. This series is initially set up for a beginner interested in programming in assembly language or machine language.

Here is a link to the main page of the series:

https://ballyalley.com/ml/ml_docs/An_In-Depth_Look_At/An_In-Depth_Look_At.html

Note that most of these tutorials are RTF (Rich Text Format) documents. Many common word processors (such as Microsoft Office) can open these documents, including the freely available Open Office suites.

Michael Matte, the author of the series, would like all comments and questions about the series to be posted to the official AtariAge thread, here:

https://atariage.com/forums/topic/293889-an-in-depth-look-at-series-nutting-manual-supplement/

It is the hope of both Michael and myself that this series provides the information needed for a neophyte Z80 programmer who wants to investigate how to specifically program the astrocade using the many routines built into the system. Perhaps, some individuals will even be spurred to create some homebrew software.

Here is information and links about the first four tutorials (0-3):


An In-Depth Look At… series: A Supplement to the “Nutting Manual”
Part 0: Series Start-Up/Introduction.
By MCM Design (Michael Matte).

Here is a direct link to ballyalley.com with the 15-page introduction to the “In-Depth Look At… series:”

https://ballyalley.com/ml/ml_docs/An_In-Depth_Look_At/An_In-Depth_Look_At.html#AnInDepthLookAtStart-UpIntroduction

Here is a very brief overview of the introduction:

Anyone interested in writing programs for their Bally/Astrocade in machine language or programming in assembly language will eventually learn about what is commonly referred to as the “Nutting Manual:”

https://ballyalley.com/ml/ml_docs/ml_docs.html#NuttingManual

This manual is packed with programming information for the Bally/Astrocade. From a programming viewpoint, the manual does provide details on the ROM’s UPI processing and on-board subroutines, but does not provide examples so the reader can acquire thorough understanding as to how the UPI and subroutines function. The details it does provide, at times, are insufficient and can leave the reader desiring more info.

The intent of this “An In-Depth Look At …” series is to supplement the “Nutting Manual” providing missing information plus stressing ML and assembly language program examples. The series will progress towards the presentation of programs with complex graphics and motion. Programs will also include extensive programming comments.

This series is not intended to teach the reader how to create ML programs or program in assembly language. Rather, the series will show how the on-board ROM subroutines can be used to display graphics, move non-blinking graphic patterns around the screen and perform many other tasks.


An In-Depth Look At… series: A Supplement to the “Nutting Manual”
Part 1: Pixel Color Register.
By MCM Design (Michael Matte).

Here is a direct link to ballyalley.com with the 6-page to the “In-Depth Look At… series” that concentrates on the Pixel Color Register:

https://ballyalley.com/ml/ml_docs/An_In-Depth_Look_At/An_In-Depth_Look_At.html#AnInDepthLookAtPixelColorRegister

Here is a very brief overview of Part 1:

There are 4 screen display parameters that must be initialized when the Bally/Astrocade console is powered on. The motherboard ROM executes a power up routine to initialize these screen parameters prior to displaying the system menu. The parameters are changed or initialized in all ROM cartridges and can be changed any time during execution of a program.

The 4 parameters are the color registers, the horizontal color boundary, the border background color and vertical blanking, all of which will be described in the first 3 lessons of this series.

Enjoy programming the awesome Astrocade!


An In-Depth Look At… series: A Supplement to the “Nutting Manual”
Part 2: Color Map Parameters.
By MCM Design (Michael Matte).

Here is a direct link to ballyalley.com with the 5-page to the “In-Depth Look At… series” that concentrates on the Color Map Parameters:

https://ballyalley.com/ml/ml_docs/An_In-Depth_Look_At/An_In-Depth_Look_At.html#AnInDepthLookAtColorMapParameters

Here is a very brief overview of Part 2:

The Bally/Astrocade color map parameters include the Horizontal Color Boundary, 8 color registers map and the border background colors. This tutorial covers these topics and includes example programs on how to use them.

Have fun programming the incredible Astrocade!


An In-Depth Look At… series: A Supplement to the “Nutting Manual”
Part 3: The Vertical Blank Register
By MCM Design (Michael Matte).

Here is a direct link to ballyalley.com with the 6-page to the “In-Depth Look At… series” that concentrates on the The Vertical Blank Register:

https://ballyalley.com/ml/ml_docs/An_In-Depth_Look_At/An_In-Depth_Look_At.html#AnInDepthLookAtVerticalBlankRegister

Here is a very brief overview of Part 3:

The only RAM in the Bally/Astrocade console is screen RAM. Unfortunately, with this situation, variables, routine flags, data blocks, the Z80 stack area, etc, must be located in the bottom of the screen RAM area plus the extra 16 bytes of scratchpad RAM at 4FF0 thru 4FFFH. The hardware allows this data to be hidden from view by setting a vertical blanking line to the desired height. The NM system description, page 90, provides some additional info on vertical blanking.

This tutorial explains how to use the Vertical Blank Register using example programs and step-by-step methods to explain how to use the register to work for the programmer.

The best Astrocade ever made is in your head; why not start programming this 1970s console beast?!?

Adam

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s