// 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 #include // 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