Fix problems related to moving to cc65 2.17.

This commit is contained in:
Jeremy Rand 2018-10-21 14:13:58 -04:00
parent f619aa0313
commit 6d4ae62b77
6 changed files with 38 additions and 39 deletions

View File

@ -70,7 +70,7 @@ SRCDIRS+=
# If you want to add arguments to the compile commandline, add them
# to this variable:
# CFLAGS += -Os
CFLAGS += -Os
# If you want to add arguments to the assembly commandline, add them
# to this variable:

View File

@ -35,20 +35,20 @@
#define VERTICAL_PIXELS_PER_SQUARE (VERTICAL_PIXELS / BOARD_SIZE)
#define HORIZONTAL_PIXELS_PER_SQUARE (HORIZONTAL_PIXELS / BOARD_SIZE)
#define DRAW_GEM_AT_XY(x, y, gemType, starred) \
gTempY = y; \
gTempX = x; \
gTempGemType = gemType; \
if (starred) { \
__asm__("lda %v", gTempY); \
__asm__("ldx %v", gTempX); \
__asm__("ldy %v", gTempGemType); \
__asm__("jsr _drawAndStarGemAtXY"); \
} else { \
__asm__("lda %v", gTempY); \
__asm__("ldx %v", gTempX); \
__asm__("ldy %v", gTempGemType); \
__asm__("jsr _drawGemAtXY"); \
#define DRAW_GEM_AT_XY(x, y, gemType, starred) \
gTempY = y; \
gTempX = x; \
gTempGemType = gemType; \
if (starred) { \
__asm__ volatile("lda %v", gTempY); \
__asm__ volatile("ldx %v", gTempX); \
__asm__ volatile("ldy %v", gTempGemType); \
__asm__ volatile("jsr _drawAndStarGemAtXY"); \
} else { \
__asm__ volatile("lda %v", gTempY); \
__asm__ volatile("ldx %v", gTempX); \
__asm__ volatile("ldy %v", gTempGemType); \
__asm__ volatile("jsr _drawGemAtXY"); \
}
@ -120,9 +120,9 @@ void drawGemAtSquare(tSquare square)
tempGemType = gemTypeAtSquare(square);
tempSquare = square;
__asm__("lda %v", tempSquare);
__asm__("ldy %v", tempGemType);
__asm__("jsr _drawGem");
__asm__ volatile("lda %v", tempSquare);
__asm__ volatile("ldy %v", tempGemType);
__asm__ volatile("jsr _drawGem");
}

View File

@ -55,11 +55,11 @@ void initJoystick(tJoyCallbacks *callbacks)
bool isButtonPressed(tJoyButtonNum buttonNum)
{
if (buttonNum == JOY_BUTTON_0) {
__asm__("LDA %w", BTN0);
__asm__("STA %v", gJoystickTemp);
__asm__ volatile("LDA %w", BTN0);
__asm__ volatile("STA %v", gJoystickTemp);
} else if (buttonNum == JOY_BUTTON_1) {
__asm__("LDA %w", BTN1);
__asm__("STA %v", gJoystickTemp);
__asm__ volatile("LDA %w", BTN1);
__asm__ volatile("STA %v", gJoystickTemp);
} else {
return false;
}
@ -69,26 +69,26 @@ bool isButtonPressed(tJoyButtonNum buttonNum)
static uint8_t joystickLeftRight(void)
{
__asm__("BIT %w", ROM_SWITCH);
__asm__("LDX #0");
__asm__("SEI");
__asm__("JSR %w", PREAD);
__asm__("CLI");
__asm__("STY %v", gJoystickTemp);
__asm__("BIT %w", RAM_SWITCH);
__asm__ volatile("BIT %w", ROM_SWITCH);
__asm__ volatile("LDX #0");
__asm__ volatile("SEI");
__asm__ volatile("JSR %w", PREAD);
__asm__ volatile("CLI");
__asm__ volatile("STY %v", gJoystickTemp);
__asm__ volatile("BIT %w", RAM_SWITCH);
return gJoystickTemp;
}
static uint8_t joystickUpDown(void)
{
__asm__("BIT %w", ROM_SWITCH);
__asm__("LDX #1");
__asm__("SEI");
__asm__("JSR %w", PREAD);
__asm__("CLI");
__asm__("STY %v", gJoystickTemp);
__asm__("BIT %w", RAM_SWITCH);
__asm__ volatile("BIT %w", ROM_SWITCH);
__asm__ volatile("LDX #1");
__asm__ volatile("SEI");
__asm__ volatile("JSR %w", PREAD);
__asm__ volatile("CLI");
__asm__ volatile("STY %v", gJoystickTemp);
__asm__ volatile("BIT %w", RAM_SWITCH);
return gJoystickTemp;
}

Binary file not shown.

View File

@ -9,6 +9,7 @@
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <mouse.h>
#include "mouseWrapper.h"
@ -29,14 +30,12 @@ static struct mouse_callbacks gMouseDrvCallbacks;
bool initMouse(tMouseCallbacks *callbacks)
{
if (!gMouseInstalled) {
gMouseDrvCallbacks.hide = mouse_def_callbacks.hide;
memcpy(&gMouseDrvCallbacks, &mouse_def_callbacks, sizeof(gMouseDrvCallbacks));
// This callback is here for the //c VBL which is only detectable
// through the mouse interrupt. By registering this as our "show"
// function, we can ensure that we get called on our VBL interrupt
// and can unblock our VBL wait function.
gMouseDrvCallbacks.show = vblIRQCallback;
gMouseDrvCallbacks.movex = mouse_def_callbacks.movex;
gMouseDrvCallbacks.movey = mouse_def_callbacks.movey;
if (mouse_install(&gMouseDrvCallbacks, &a2_mouse_drv) == 0) {
gMouseInstalled = true;