2016-07-20 19:35:15 +00:00
|
|
|
//
|
|
|
|
// dbllores.h
|
|
|
|
// a2bejwld
|
|
|
|
//
|
|
|
|
// Created by Jeremy Rand on 2016-07-20.
|
|
|
|
// Copyright © 2016 Jeremy Rand. All rights reserved.
|
|
|
|
//
|
|
|
|
|
|
|
|
#ifndef __a2bejwld__dbllores__
|
|
|
|
#define __a2bejwld__dbllores__
|
|
|
|
|
2016-07-21 00:53:52 +00:00
|
|
|
#include "types.h"
|
2016-07-20 19:35:15 +00:00
|
|
|
|
|
|
|
|
2016-07-22 17:04:47 +00:00
|
|
|
// API
|
|
|
|
|
2016-07-22 05:11:36 +00:00
|
|
|
extern void __fastcall__ showDblLoRes(void);
|
|
|
|
extern void __fastcall__ clearDblLoRes(void);
|
|
|
|
extern void __fastcall__ unshowDblLoRes(void);
|
|
|
|
extern void __fastcall__ mixedTextMode(void);
|
2016-07-20 19:35:15 +00:00
|
|
|
|
2020-03-24 03:28:28 +00:00
|
|
|
// The Apple //e card does not implement double lores correctly. The colours
|
|
|
|
// used on the aux bank need to be shifted but the //e card expects unshifted
|
|
|
|
// colour values (ie the same as those on the main. This function is called
|
2020-03-24 06:06:45 +00:00
|
|
|
// when the game detects it is not running on a //c or //gs. I would like to
|
|
|
|
// get_ostype() from the cc65 runtime but it doesn't work reliably for detecting
|
|
|
|
// the //e card. So I put in my own detection based on the technote. If the
|
|
|
|
// function detects it is runing on a //e card, it causes the graphics
|
2020-03-24 03:28:28 +00:00
|
|
|
// routines to use the same colours in the main and aux banks.
|
|
|
|
extern void __fastcall__ setBuggyDblLoRes(void);
|
|
|
|
|
2016-07-22 05:11:36 +00:00
|
|
|
extern void __fastcall__ drawBgSquare(tSquare square);
|
2016-07-20 19:35:15 +00:00
|
|
|
|
2016-08-26 03:35:30 +00:00
|
|
|
extern void __fastcall__ drawGem(tSquare square);
|
2016-07-20 19:35:15 +00:00
|
|
|
|
2016-07-22 17:04:47 +00:00
|
|
|
extern void __fastcall__ explodeGemFrame1(tSquare square);
|
|
|
|
extern void __fastcall__ explodeGemFrame2(tSquare square);
|
|
|
|
extern void __fastcall__ explodeGemFrame3(tSquare square);
|
|
|
|
extern void __fastcall__ explodeGemFrame4(tSquare square);
|
|
|
|
extern void __fastcall__ explodeGemFrame5(tSquare square);
|
|
|
|
extern void __fastcall__ explodeGemFrame6(tSquare square);
|
|
|
|
|
2016-07-22 05:11:36 +00:00
|
|
|
extern void __fastcall__ starGem(tSquare square);
|
2016-07-21 04:55:29 +00:00
|
|
|
|
2016-07-22 05:11:36 +00:00
|
|
|
extern void __fastcall__ selectSquare(tSquare square);
|
2016-07-20 19:35:15 +00:00
|
|
|
|
2016-07-22 05:11:36 +00:00
|
|
|
extern void __fastcall__ drawScore(uint8_t score);
|
2016-07-21 19:33:31 +00:00
|
|
|
|
2016-07-20 19:35:15 +00:00
|
|
|
|
2016-07-22 19:48:49 +00:00
|
|
|
// The following functions take the Y position (0-23) as
|
|
|
|
// their first argument. The X position (0-39) should
|
2016-08-26 03:35:30 +00:00
|
|
|
// be in the X register. The gem type should be in the
|
|
|
|
// Y register.
|
|
|
|
extern void __fastcall__ drawGemAtXY(uint8_t y);
|
2016-08-29 04:58:37 +00:00
|
|
|
extern void __fastcall__ drawAndStarGemAtXY(uint8_t y);
|
2016-07-22 19:48:49 +00:00
|
|
|
|
|
|
|
|
2020-01-23 04:31:42 +00:00
|
|
|
#endif /* defined(__a2bejwld__dbllores__) */
|