#pragma noroot #include #include #include "asmglue.h" #include "cmdproc.h" #include "installcmds.h" typedef struct NewCmd { Word cmdNum; void (*cmdAddr)(void); } NewCmd; NewCmd newCmds[] = { {aspGetStatusCommand, cmdProc}, {aspOpenSessionCommand, cmdProc}, {aspCloseSessionCommand, cmdProc}, {aspCommandCommand, cmdProc}, {aspWriteCommand, cmdProc}, {nbpLookupNameCommand, nbpCmdProc}, {0, 0} }; LongWord *cmdTable = (LongWord *)0xE1D600; LongWord oldCmds[MAX_CMD + 1]; /* holds old entries for commands we changed */ void installCmds(void) { Word savedStateReg; NewCmd *cmd; savedStateReg = ForceLCBank2(); for (cmd = newCmds; cmd->cmdNum != 0; cmd++) { oldCmds[cmd->cmdNum] = cmdTable[cmd->cmdNum]; cmdTable[cmd->cmdNum] = (oldCmds[cmd->cmdNum] & 0xFF000000) | (LongWord)cmd->cmdAddr; } RestoreStateReg(savedStateReg); }