/KarlQuappe

Primary LanguageAssembly

Technical Readme

Public Domain
-------------
All files of Karl_Quappe are public domain - so far they were written by me (Malban).

Some files contain work of other people (eprom access, VecFever access, BIOS names 
from VECTREX.I etc) this work is NOT public domain. Please contact the
original author to enquire their respective status. The original author is
mentioned whereever I knew who it was.


In General
----------
The directory "KarlQuappe" contains a Vide compatible project.
Copy the directory KarlQuappe to the directory Vide/projects.

To load the project in Vide:
- open Vide
- open the editor (vedi)
- press the button "Open File"
- go to the KarlQuappe directory and chose the file "KarlQuappeProjectProperty.xml"

The project can be assembled and run from the editor by pressing the "build project" button.

I have not tested any other assembler - but the project might also assemble using the
the Kingswood assembler. The main file to assemble is: "KarlQuappe.asm", all other files are
referenced from within that file via include statements.

If you do not know what that "Vide" is - I just mentioned - please visit the Vide blog at:
                         http://vide.malban.de/

Configuration
-------------
At the start of KarlQuappe.asm one configuration options can be set.
a) USE_PB6 = 1 [default is 1]
- in general means, that if not defined as 1 
  permanency is disabled. VecFever and DS2431 code is ignored.
  This also means the resulting "bin" file is 
  runnable on a VecFlash/VecMulti without the need to press a button during startup.

Filestructure
-------------
KarlQuappe-Directory
- all source and inclue files

other
- all files for 
  * overlay
  * instruction manual
  * embossment
  
sounds
- the sound files used in KarlQuappe

vlists
- most, if not all, vectorlists used within KarlQuappe

Source structure
----------------
There is no definite structure - the source "grew" as the project advanced. 
General rules of thump:

Code files
..........

- KarlQuappe.asm
  Is the main file, all files are included from here. As functional blocks it contains:
  * main loop 
  * initialize routines
  * some bios replacement routines (joystick, sound, random)
  * game over
  * title screen

- attractData.i
  Data file which contains data for the attract mode 

- ayfxplayer_f.i
  Player for AYFX sound effects only for channel 3. Originally written by Richard Chadd, quite modified by me.

- ds2431XXX and epromStuff.i
  Contain routines to access the DS2431a one wire eprom chip.
  Also contains some refferences to VecFever routines, since both of these devices can be used
  to permanently save data.

- FASTSPRI.I
  Collector for all vectorlists

- highscoreXXX.i
  All routines/macros concerned with highscores

- IMISSION.I
  All kinds of intermissions (not many left) - mainly "deathbox", "leveldonebox", timer stuff 
  and two player copy/initialization routines

- InMovesXXX.i
  Small "macro"ed routines that can be placed "inside" of moveTo routines (in the wait period)
  
- LEVELS.i
  Definition of the 16 levels

- MACROS.I
  Mainly BIOS replacement macros.

- MORPH.I
  Routines to do the morphing (timer)

- musics.i
  colector for all sounds/music data (except yankee)

- MY_MACROS.I
  Another collection of macros, sound, WaitRecal, Moeveto...

- options.i
  The options screen

- print.i
  5 row font definitions, 8 row font definition, print routines for those fonts

- rasterDraw.asm
  routine to draw the title image (raster)
  
- UNLOOP.I
  routines to draw vectrlists unlooped

- YANKEE.I
  Data of the yankee doodle music piece in BIOS format

- ymStreamedPlayerKarl.i
  Streamed ym player optimized for Karl Quappe