ReadMe for applevu33.zip ------------------------ Bill Buckels bbuckels@mts.net January, 2009 Introduction ------------ This zip file contains the APPLEVU and ABINLOAD projects for the Apple33 distribution of the Manx Aztec C65 Version 3.2b cross-compiler. In each subdirectory is a disk image as well as the project. AbinLoad33.dsk -------------- This disk image contains a DOS 3.3 graphics file viewer and a variety of graphics files and a HELLO program to launch the viewer. 5 TEXT 6 HOME 10 PRINT "********************************" 11 PRINT "* *" 81 PRINT "* HELLO MENU *" 82 PRINT "* *" 90 PRINT "* 1 - BRUN ABinLoad *" 92 PRINT "* *" 97 PRINT "* ESC - EXIT TO DOS 3.3 *" 98 PRINT "* *" 99 PRINT "********************************" 150 GET A$ 160 IF A$ = CHR$ (27) THEN GOTO 500 165 TEXT 166 HOME 170 IF A$ = "1" THEN GOTO 410 200 GOTO 5 410 PRINT "PLEASE WAIT...": PRINT CHR$ (4);"BRUN ABINLOAD.PRG" 500 TEXT 510 HOME 520 CALL - 1184: CALL 42350 530 REM THIS IS THE END 540 NEW AppleVU33.dsk ------------- This disk image contains a DOS 3.3 graphics file viewer, and a slideshow viewer, and a variety of graphics files, and a HELLO program to launch either. 5 TEXT 6 HOME 10 PRINT "********************************" 11 PRINT "* *" 81 PRINT "* HELLO MENU *" 82 PRINT "* *" 90 PRINT "* 1 - BRUN ABinLoad *" 91 PRINT "* 2 - BRUN AppleVU *" 92 PRINT "* *" 97 PRINT "* ESC - EXIT TO DOS 3.3 *" 98 PRINT "* *" 99 PRINT "********************************" 150 GET A$ 160 IF A$ = CHR$ (27) THEN GOTO 500 165 TEXT 166 HOME 170 IF A$ = "1" THEN GOTO 410 180 IF A$ = "2" THEN GOTO 420 200 GOTO 5 410 PRINT "PLEASE WAIT...": PRINT CHR$ (4);"BRUN ABINLOAD.PRG" 420 PRINT "PLEASE WAIT...": PRINT CHR$ (4);"BRUN APPLEVU.PRG" 500 TEXT 510 HOME 520 CALL - 1184: CALL 42350 530 REM THIS IS THE END 540 NEW 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 appliquée 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.PRG and ABINLOAD.PRG are by-products of that effort, and of their ProDOS 8 versions. General Description ------------------- APPLEVU.PRG is a slideshow for the Apple II written in Manx Aztec C65 Version 3.2b and runs under DOS 3.3. 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.PRG is a picture viewer for the Apple II written in Manx Aztec C65 Version 3.2b and runs under DOS 3.3. It displays BSaved HIRES Images. Unlike it's ProDOS 8 version it does NOT require a text script called PICLIST and uses the DOS 3.3 catalog routine to display the contents of the disk instead. 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. 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 maximum size of Apple II HIRES graphics screen mode. Technical Notes --------------- Apple Hi Res screen and direct addressing from Aztec C Sys programs running under DOS 3.3. 1. Programs must be linked with a "Hole" from 0x2000 to 0x4000 which is the area in memory for the first page (Page 1) 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. 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