// 3. Subroutines Section // MAIN: Mandatory for a C Program to be executable int main(void){ TExaS_Init(SW_PIN_PF40, LED_PIN_PF31,ScopeOn); // activate grader and set system clock to 80 MHz PortF_Init(); // Init port PF4 PF3 PF1 EnableInterrupts(); // enable interrupts for the grader while(1){ SetReady(); WaitForASLow(); ClearReady(); Delay1ms(10); WaitForASHigh(); Delay1ms(250); SetVT(); Delay1ms(250); ClearVT(); // Follows the nine steps list above // a) Ready signal goes high // b) wait for switch to be pressed // c) Ready signal goes low // d) wait 10ms // e) wait for switch to be released // f) wait 250ms // g) VT signal goes high // h) wait 250ms // i) VT signal goes low } }
//CMessagePlaySoundset CMessagePlaySoundset::CMessagePlaySoundset() { SetVT(this, 0xAA73DC); bPrintToConsole = FALSE; bLimitLength = FALSE; nSoundIdx = 0; u15 = 0; }
//CMessageDisplayText CMessageDisplayText::CMessageDisplayText() { SetVT(this, 0xAA9774); rgbLeft = 0x000000; rgbRight = g_ColorDefaultText; u1c = -1; bFloatText = FALSE; u22 = FALSE; u23 = TRUE; }
//CMessageDisplayDialogue CMessageDisplayDialogue::CMessageDisplayDialogue() { SetVT(this, 0xAA63CC); srOwner = -1; srText = -1; rgbOwner = 0x000000; rgbText = g_ColorDefaultText; u1c = -1; u20 = FALSE; bFloatText = FALSE; u22 = FALSE; bPlaySound = TRUE; }
//CMessageAddEffect CMessageAddEffect::CMessageAddEffect() { SetVT(this, 0xAA6A40); u10 = 0; u11 = 0; }
//CMessageSpriteUpdate CMessageSpriteUpdate::CMessageSpriteUpdate() { SetVT(this, 0xAAB914); }
//CMessageSetTriggerRemovalTimer CMessageSetTriggerRemovalTimer::CMessageSetTriggerRemovalTimer() { SetVT(this, 0xAA7458); wTicks = 0; }
//CMessageSetTrigger CMessageSetTrigger::CMessageSetTrigger() { SetVT(this, 0xAA5C84); }
//CMessageSetAnimationSequence CMessageSetAnimationSequence::CMessageSetAnimationSequence() { SetVT(this, 0xAA6D6C); nSeq = 0; ud = 0; }
//CUIButton CUIButton::CUIButton() { SetVT(this, 0xAAAE44); }
//CMessageFaceTalker CMessageFaceTalker::CMessageFaceTalker() { SetVT(this, 0xAA743C); nTicks = 0; eTarget = ENUM_INVALID_INDEX; }
//CMessageCutSceneMode CMessageCutSceneMode::CMessageCutSceneMode() { SetVT(this, 0xAA69D0); bEnable = 0; ud = 0; }
//CMessageAddActionHead CMessageAddActionHead::CMessageAddActionHead() { SetVT(this, 0xAA5BF4); }
//CMessageCastSpell CMessageCastSpell::CMessageCastSpell() { SetVT(this, 0xAA9970); eSpellTarget = ENUM_INVALID_INDEX; }
//CMessagePlaySound CMessagePlaySound::CMessagePlaySound() { SetVT(this, 0xAA6E68); nChannel = 0; u15 = 0; u16 = 0; }
//CMessageInterruptDialogue CMessageInterruptDialogue::CMessageInterruptDialogue() { SetVT(this, 0xAA9758); b = 0; ud = 0; }
//CMessageModifyVariable CMessageModifyVariable::CMessageModifyVariable() { SetVT(this, 0xAA6CE0); nValue = 0; nBehaviour = 0; u19 = 0; }
//CMessageModifyPartyGold CMessageModifyPartyGold::CMessageModifyPartyGold() { SetVT(this, 0xAA6E4C); nGold = 0; cMode = 0; bPrintMessage = false; }
//CMessageHostReleaseServerStore CMessageHostReleaseServerStore::CMessageHostReleaseServerStore() { SetVT(this, 0xAA7298); }
//CMessageCreatureOverlay CMessageCreatureOverlay::CMessageCreatureOverlay() { SetVT(this, 0xAA9790); param = 0; val = 0; }
//CMessageQueueActions CMessageQueueActions::CMessageQueueActions() { SetVT(this, 0xAA6DC0); bSkipIfAlreadyQueued = FALSE; bClearActionQueue = FALSE; }
//CMessage CMessage::CMessage() { SetVT(this, 0xAA5C10); eTarget = ENUM_INVALID_INDEX; eSource = ENUM_INVALID_INDEX; }
//CMessageAddActionTailInterrupt CMessageAddActionTailInterrupt::CMessageAddActionTailInterrupt() { SetVT(this, 0xAA6ACC); }
//CMessageRemoveAreaAirEffects CMessageRemoveAreaAirEffects::CMessageRemoveAreaAirEffects() { SetVT(this, 0xAA727C); }
//CMessageRemoveItem CMessageRemoveItem::CMessageRemoveItem() { SetVT(this, 0xAA6E14); wSlot = 0; }
//CEffectInstantDeath CEffectInstantDeath::CEffectInstantDeath() { SetVT(this, 0xAA6A5C); effect.nOpcode = CEFFECT_OPCODE_INSTANT_DEATH; }
//CUICheckButton CUICheckButton::CUICheckButton() { SetVT(this, 0xAAAEB0); }