fs2port/port/include/chunk5Main.h

49 lines
1.7 KiB
C

// chunk5's boot sequence, main loop, input tick, keyboard dispatch and
// key handlers (src/chunk5.s MainLoopEntry .. MaybeSetViewDirectionAndAbort,
// InitFromReset .. InitInstrumentSaveBuffers).
#ifndef CHUNK5_MAIN_H
#define CHUNK5_MAIN_H
#include <stdbool.h>
#include <stdint.h>
// Boot: InitZeroPage + MainGameEntry. Returns when a reboot is requested.
void chunk5Boot(void);
// ProcessInputTick and the `lda $33; cmp #$20; bcc; jsr` test around it.
void chunk5CheckInputTick(void);
void chunk5ProcessInputTick(void);
// TogglePause: wait for a key (returns it with bit 7 clear).
uint8_t chunk5TogglePause(void);
// True once Apply64KPatchTable has run (the 64K hooks are live).
bool chunk5Patched64K(void);
// Entry points other chunks call.
void chunk5ApplyMagnetoState(uint8_t state, uint8_t bits);
void chunk5BrakesOrGuns(void);
void chunk5LessThrottle(void);
void chunk5MoreThrottle(void);
void chunk5PatchSlotUpdateComMessageChunks(void);
// RefreshAileronAndRoll / RefreshFlapsIndicator (L915D, A = flaps) /
// RefreshRudderIndicator / L90E8 (throttle): the $8764..$877C jump-table
// entries the scenery-file overlays call.
void chunk5RefreshAileronAndRoll(void);
bool chunk5RefreshElevatorIndicator(void);
void chunk5RefreshFlapsIndicator(uint8_t flaps);
void chunk5RefreshRudderIndicator(void);
void chunk5RefreshThrottleIndicator(void);
void chunk5ArmBootDOS(void);
void chunk5ResetYokeAndSlew(void);
void chunk5SetInputModeAndCounter(uint8_t mode);
void chunk5SetModeLibraryAction(uint8_t action);
void chunk5StoreRadarViewFromX(uint8_t x);
void chunk5UpdateMinutesHoursDisplay(void);
void chunk5YokeCenter(void);
void chunk5YokeLeft(void);
void chunk5YokeRight(void);
void chunk5YokeUp(void);
#endif