ReadMe for AppleVu.zip

Introduction

This zip file contains four Apple II disk images:

AppleVu.dsk - PRODOS 8 Versions of APPLEVU.SYSTEM and ABINLOAD.SYSTEM and 
sample images and slideshow. Written in Manx Aztec C65 Version 3.2b.

ABinLoad.dsk - DOS 3.3 Versions of APPLEVU and ABINLOAD and sample images
and slideshow. Written in AppleSoft BASIC.

TitleScreens.dsk - PRODOS 8 APPLEVU slideshow of title screens from the
"Little Running Steps" collection.

Menus.dsk - PRODOS 8 APPLEVU slideshow of menu screens from the
"Little Running Steps" collection.

Background

The "Little Running Steps" Collection consists of 10 disk images containing
English and French versions of four PRODOS programs written by Canadian
Software Developer Bill Buckels in the early 1990's for use in Elementary
Schools.

The IBM-PC versions of these programs were developed by French Canadian
"CourseWare" developers Denis Coulombe and Robert Boivin on behalf of Centre
de recherche applique pour l'ordinateur (CRAPO) in the late 1980's and
marketed to schools across Canada as part of a six program set called
"Collection Les Petites espadrilles".

The Apple II versions were written in their entirety by Canadian Software
Developer Bill Buckels, on the IBM-PC in the C programing language using the
Manx Aztec C 6502 Cross-Compiler.

The Manx C compiler provided a rudimentary Graphics Library, but came nowhere
close to what Bill needed to complete the four programs in the "Little Running 
Steps" Collection so he set to work to create the graphics routines that the 
Apple versions needed.

Bill developed his own Apple II graphics file formats and programmed his own
set of conversion tools which he ran on the IBM-PC to produce the Apple II
graphics after creating and editing these in IBM-PC format to suit the Apple
II display. He did this in conjunction with writing his Manx C graphics
library. 

APPLEVU.SYSTEM and ABINLOAD.SYSTEM are by-products of that effort.

General Description

APPLEVU.SYSTEM is a slideshow for the Apple IIe written in Manx Aztec C65 
Version 3.2b  and runs under PRODOS 8. It displays BSaved HIRES Images and
requires a text script called PICLIST. It also displays Apple II HIRES Images
in the .TOP and .BOT file formats and Apple II HIRES Image Fragments in the 
.RAG file formats. These 3 additional formats were developed by Bill Buckels
in conjunction with the development of the "Little Running Steps" Collection.

ABINLOAD.SYSTEM is a picture viewer for the Apple IIe written in Manx Aztec 
C65 Version 3.2b  and runs under PRODOS 8. It displays BSaved HIRES Images and
requires a text script called PICLIST. It also displays Apple II HIRES Images
in the .TOP and .BOT file formats and Apple II HIRES Image Fragments in the 
.RAG file formats. These 3 additional formats were developed by Bill Buckels
in conjunction with the development of the "Little Running Steps" Collection.

The AppleSoft BASIC versions of these programs support the loading of BSaved
HIRES screens only and do not support the .TOP, .BOT, and .RAG file formats.

Graphics File Formats - .TOP, .BOT, and .RAG 

All of these are the same file format. The file extensions are descriptive 
naming variations. These are uncompressed graphics files in scanline 
orientation and are aligned on 2-byte (14 pixel) boundaries. They have a 
2 byte header, with the first byte being the width of the image in bytes
(7 pixels per byte) and the second byte being the height of the image. 
The header is followed by raw scanline oriented data to be displayed 
directly on the Apple II screen in HIRES graphics mode.

Unlike the Apple II BSaved HIRES Image format which is not raster aligned
these files are not padded and store visible graphics data only which 
results in a slightly smaller file size over a screen saved in the BSaved 
format.

The .TOP file format is intended for use in Apple II mixed text and graphics 
screen mode and is 280 x 160 in size which is the same size as the graphics 
area in this screen mode.

The .BOT file format is intended for use in Apple II full graphics screen mode 
and is 280 x 192 in size which is the same size as the graphics area in this 
screen mode.

The .RAG file format is a variable size image fragment with a mazimum size of
280 x 192 which is the maizmum size of Apple II HIRES graphics screen mode.

Technical Notes

Apple Hi Res screen and direct addressing from Aztec C Sys programs running 
under ProDOS.

1. Programs must be linked with a "Hole" from 0x4000 to 0x6000
which is the area in memory for the second page (Page 2) of HI
RES memory in the lower bank of memory (80 Store is switched off)

This ensures that no code will be in the screen area.

Since the Aztec Cross-Compiler creates SYS programs with a 4 byte 
header for compatibility with the AppleSoft BASIC "LOAD" command
which must be removed to load the program in PRODOS as a SYS program
the offset for the "Hole" for the purposes of linking with LN65 is 
actually from 0x4000 to 0x6004. When the AppleSoft BASIC header is
removed the "Hole" will be shifted back by 4 bytes.

We cannot use the first page of HI RES graphics (Page 1) because
of a memory conflict between the ProDOS load address for SYS
programs ( 0x2000 ) and the address of the first page of the HI RES
screen (Page 1) which are mutually exclusive.

2. Review of Physical Data

Resolution     : 280  Pixels X 192 Rasters
               ( 140 "Pixel-Pairs" X 192 Rasters)
Raster Width   : 40   Bytes
               ( 20  "Byte Pairs")
Pixels per Byte: 7    Pixels/Byte
               ( 7   "Pixel-Pairs"/"Byte Pair")

BYTE VALUES and the color bitmap:

To be properly considered the HI RES color map should be
approached as a series of Byte Pairs since the color value
that is produced by the video adapter will be determined by the
pixel location on the physical screen rather than simply by the
value in a single byte.

Further, Because of the undesirable color anomalies that are
created when complex displays of several colors are attempted,
the display is properly best considered with only 3-colors, being
Black and White and a Third "Composite" Color with a predefined
order of precedence and color priorities.

Black and White Must Be Considered Primary colors, with all other
colors being subsets of their values. Said values are pixel pair
combinations. This means that if Black and White are given equal
status, then the horizontal screen resolution should be
considered as 140 "pixel-pairs". By giving White Priority over
Black (Considering Black as the Background Color), we can
actually approach a screen resolution of 280 white pixels (sort
of). More correctly, this allows us to produce white at 280
distinct locations providing we have no other colors to consider
but because we must make each dot two dots wide to be white even
though our accuracy is to a resolution of 280, our detail is
still only to roughly 140 pixel-pairs with exceptions where
pixels are grouped.

In plain english, when the picture is complex, since black is
always used to create other secondary colors, then black should
be displayed in pairs of pixels. Black can then be overlaid with
a single secondary color to create a horizontal resolution of 140
pixel pairs for the second color without "bleeding" between
colors. This has the effect similar to the use of color plates in
a photographic process. The secondary color could concievably be
varied for different zones but areas of secondary colors
should not be mixed in a complex manner.

(note - this graph is arranged in order of pixel plotting
sequence. In the actual Byte bit 7 is the equivalent of a logical
shift right of the bit value by 7 [ i.e. bit << 7 ].)

Byte Pair Diagrams :

Note- Re: Figure 1 and 2 the Palette Select Bit could have been
"Don't Care", since Black and White are available in either
palette by using the same Pixel Pair Pattern.

Figure  1-
Palette 0-

All BLACK : byte value = '\x00'______ Palette Select Bit _____
                              :                               :
  0   1   2   3   4   5   6   7   0   1   2   3   4   5   6   7
-----------------------------------------------------------------
: 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 :
-----------------------------------------------------------------
: :   :   :   :   :   :   :     : :   :   :   :   :   :   :     :
: 0   1   2   3   4   5   6     : 7   8   9   10  11  12  13    :
: pixels                        :                               :
:___________ Byte ZERO _________:___________ Byte ONE __________:


Figure  2-
Palette 1-

All WHITE : byte value = '\xff'______ Palette Select Bit _____
                              :                               :
  0   1   2   3   4   5   6   7   0   1   2   3   4   5   6   7
-----------------------------------------------------------------
: 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 :
-----------------------------------------------------------------
: :   :   :   :   :   :   :     : :   :   :   :   :   :   :     :
: 0   1   2   3   4   5   6     : 7   8   9   10  11  12  13    :
: pixels                        :                               :
:___________ Byte ZERO _________:___________ Byte ONE __________:


Figure  3 -
Palette 0 -  Bit 7 is LOW - Violet EVEN pixel or Green ODD pixel

All Violet (Turn Green Off)    ______ Palette Select Bit _____
                              :                               :
  0   1   2   3   4   5   6   7   0   1   2   3   4   5   6   7
-----------------------------------------------------------------
: 1 : 0 : 1 : 0 : 1 : 0 : 1 : 0 : 0 : 1 : 0 : 1 : 0 : 1 : 0 : 0 :
-----------------------------------------------------------------
: :   :   :   :   :   :   :     : :   :   :   :   :   :   :     :
: 0   1   2   3   4   5   6     : 7   8   9   10  11  12  13    :
: V   G   V   G   V   G   V     : G   V   G   V   G   V   G     :
: pixel colors                  :                               :
:___________ Byte ZERO _________:___________ Byte ONE __________:


Figure  4 -
Palette 0 -  Bit 7 is LOW - Violet EVEN pixel or Green ODD pixel

All Green (Turn Violet Off)    ______ Palette Select Bit _____
                              :                               :
  0   1   2   3   4   5   6   7   0   1   2   3   4   5   6   7
-----------------------------------------------------------------
: 0 : 1 : 0 : 1 : 0 : 1 : 0 : 0 : 1 : 0 : 1 : 0 : 1 : 0 : 1 : 0 :
-----------------------------------------------------------------
: :   :   :   :   :   :   :     : :   :   :   :   :   :   :     :
: 0   1   2   3   4   5   6     : 7   8   9   10  11  12  13    :
: V   G   V   G   V   G   V     : G   V   G   V   G   V   G     :
: pixel colors                  :                               :
:___________ Byte ZERO _________:___________ Byte ONE __________:


Figure  5 -
Palette 1 -  Bit 7 is HIGH- Blue EVEN pixel or Orange ODD pixel

All Blue (Turn Orange Off)     ______ Palette Select Bit _____
                              :                               :
  0   1   2   3   4   5   6   7   0   1   2   3   4   5   6   7
-----------------------------------------------------------------
: 1 : 0 : 1 : 0 : 1 : 0 : 1 : 1 : 0 : 1 : 0 : 1 : 0 : 1 : 0 : 1 :
-----------------------------------------------------------------
: :   :   :   :   :   :   :     : :   :   :   :   :   :   :     :
: 0   1   2   3   4   5   6     : 7   8   9   10  11  12  13    :
: B   O   B   O   B   O   B     : O   B   O   B   O   B   O     :
: pixel colors                  :                               :
:___________ Byte ZERO _________:___________ Byte ONE __________:


Figure  6 -
Palette 1 -  Bit 7 is HIGH - Blue EVEN pixel or Orange ODD pixel

All Orange(Turn Blue Off)      ______ Palette Select Bit _____
                              :                               :
  0   1   2   3   4   5   6   7   0   1   2   3   4   5   6   7
-----------------------------------------------------------------
: 0 : 1 : 0 : 1 : 0 : 1 : 0 : 1 : 1 : 0 : 1 : 0 : 1 : 0 : 1 : 1 :
-----------------------------------------------------------------
: :   :   :   :   :   :   :     : :   :   :   :   :   :   :     :
: 0   1   2   3   4   5   6     : 7   8   9   10  11  12  13    :
: B   O   B   O   B   O   B     : O   B   O   B   O   B   O     :
: pixel colors                  :                               :
:___________ Byte ZERO _________:___________ Byte ONE __________:


End of ReadMe
