Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //------- FFDEVICE.CPP ---------------------------------------------------------------
- //------- собственно это конкретная реализация класса нашей модели, обеспечивающего
- //------- стандартный интерфейс с PROSPICE.
- #include "stdafx.h"
- #include "FFDEVICE.h" //- заголовочный файл для реализации класса нашей модели.
- //------------------------------------------------------------------------------------
- int ROM[35][37];
- STATE TO_STATE(int Znach)
- {
- if(Znach == 1)
- {
- return SHI;
- }
- return SLO;
- }
- //--- DEVICE::isdigital --------------------------------------------------------------
- //--- Каждый вывод компонента, обнаруженный PROSPICE в списке соединений ассоциируется
- //--- со своей модель через эту функцию. PROSPICE создаст образец IDSIMPIN для каждого
- //--- вывода, для которого получает возврат из этой функции, не равнй нулю.
- //--- Эти интерфейсы с выводами доступны затем через функцию IINSTANCE::getdsimpin.
- //--- DSIM интерфейс представляет вывод модели как содержимое DSIM.
- //--- Он предоставляет доступ к текущему и предшествующему состоянию вывода, и методы,
- //--- позволяющие изменять состояние вывода в определенное время в будущем.
- //--- См. подробнее об этом VSMSDK.HLP: Class IDSIMPIN
- INT FFDEVICE::isdigital (CHAR *pinname)
- {
- return 1; //--- у модели все выводы цифровые
- //--- возможны варианты:
- //--- 1 вывод является цифровым или смешанного типа.
- //--- 0 вывод является аналоговым или не распознаётся моделью.
- //--- -1 вывод может быть как аналоговым, так и цифровым, в зависимости от контекста.
- }
- //--- DEVICE::setup ------------------------------------------------------------------
- //--- Эта функция вызывается PROSPICE как только установлено, что компонент имеет
- //--- один или более цифровых выводов.
- //--- Модели передаётся указатель на примитив симулятора к который она присоединена
- //--- и на DSIM цепь, которая её содержит. По сути - это начальная инициаллизация...
- VOID FFDEVICE::setup (IINSTANCE *instance, IDSIMCKT *dsimckt)
- {
- //------------------- IINSTANCE *instance - указатель на примитив симулятатора,
- //------------------- к которой модель приосоединена.
- //----------------------------------------- IDSIMCKT *ckt - указатель на DSIM цепь,
- //----------------------------------------- которая включает в себя модель.
- //--- Обычно, модель сохраняет оба параметра интерфейса как переменные.
- inst = instance;
- ckt = dsimckt;
- //--- Большинство моделей также делает вызовы функции IINSTANCE::getdsimpin, чтобы
- //--- приобрести доступ к интерфейсам, которые созданы для её выводов.
- //--- Связываем переменные с именами выводов нашей модели
- Pin1 = inst->getdsimpin("A0", true);
- Pin2 = inst->getdsimpin("A1", true);
- Pin3 = inst->getdsimpin("A2", true);
- Pin4 = inst->getdsimpin("A3", true);
- Pin40 = inst->getdsimpin("A4", true);
- Pin46 = inst->getdsimpin("A5", true);
- Pin7 = inst->getdsimpin("OE", true);
- Pin8 = inst->getdsimpin("D0", true);
- Pin9 = inst->getdsimpin("D1", true);
- Pin10 = inst->getdsimpin("D2", true);
- Pin11 = inst->getdsimpin("D3", true);
- Pin12 = inst->getdsimpin("D4", true);
- Pin13 = inst->getdsimpin("D5", true);
- Pin14 = inst->getdsimpin("D6", true);
- Pin15 = inst->getdsimpin("D7", true);
- Pin16 = inst->getdsimpin("D8", true);
- Pin17 = inst->getdsimpin("D9", true);
- Pin18 = inst->getdsimpin("D10", true);
- Pin19 = inst->getdsimpin("D11", true);
- Pin20 = inst->getdsimpin("D12", true);
- Pin21 = inst->getdsimpin("D13", true);
- Pin22 = inst->getdsimpin("D14", true);
- Pin23 = inst->getdsimpin("D15", true);
- Pin24 = inst->getdsimpin("D16", true);
- Pin25 = inst->getdsimpin("D17", true);
- Pin26 = inst->getdsimpin("D18", true);
- Pin27 = inst->getdsimpin("D19", true);
- Pin28 = inst->getdsimpin("D20", true);
- Pin29 = inst->getdsimpin("D21", true);
- Pin30 = inst->getdsimpin("D22", true);
- Pin31 = inst->getdsimpin("D23", true);
- Pin32 = inst->getdsimpin("D24", true);
- Pin33 = inst->getdsimpin("D25", true);
- Pin34 = inst->getdsimpin("D26", true);
- Pin35 = inst->getdsimpin("D27", true);
- Pin36 = inst->getdsimpin("D28", true);
- Pin37 = inst->getdsimpin("D29", true);
- Pin38 = inst->getdsimpin("D30", true);
- Pin39 = inst->getdsimpin("D31", true);
- Pin41 = inst->getdsimpin("D32", true);
- Pin42 = inst->getdsimpin("D33", true);
- Pin43 = inst->getdsimpin("D34", true);
- Pin44 = inst->getdsimpin("D35", true);
- Pin45 = inst->getdsimpin("D36", true);
- //--- установим начальное состояние выходов:
- Pin8->setstate(SLO);
- Pin9->setstate(SLO);
- Pin10->setstate(SLO);
- Pin11->setstate(SLO);
- Pin12->setstate(SLO);
- Pin13->setstate(SLO);
- Pin14->setstate(SLO);
- Pin15->setstate(SLO);
- Pin16->setstate(SLO);
- Pin17->setstate(SLO);
- Pin18->setstate(SLO);
- Pin19->setstate(SLO);
- Pin20->setstate(SLO);
- Pin21->setstate(SLO);
- Pin22->setstate(SLO);
- Pin23->setstate(SLO);
- Pin24->setstate(SLO);
- Pin25->setstate(SLO);
- Pin26->setstate(SLO);
- Pin27->setstate(SLO);
- Pin28->setstate(SLO);
- Pin29->setstate(SLO);
- Pin30->setstate(SLO);
- Pin31->setstate(SLO);
- Pin32->setstate(SLO);
- Pin33->setstate(SLO);
- Pin34->setstate(SLO);
- Pin35->setstate(SLO);
- Pin36->setstate(SLO);
- Pin37->setstate(SLO);
- Pin38->setstate(SLO);
- Pin39->setstate(SLO);
- Pin41->setstate(SLO);
- Pin42->setstate(SLO);
- Pin43->setstate(SLO);
- Pin44->setstate(SLO);
- Pin45->setstate(SLO);
- int data[36][37] = {
- // Загр Опер Ист Адр. ПЗУ Адр след. Выбор УА или ОА
- // Ad3_1_1
- // v v v Ad2_1_1
- // v v B2 B1 B3 v Ad1_1_1
- // A B D I8,7,6 I5,4,3 I2,1,0 CX X1,X0 Ad0_1_1 AR E_2
- { 0,0,0,0, 0,0,0,0, 1,0,1,0, 0,1,1, 0,0,0, 1,1,1, 0, 0,0, 0,0,0,0,0,0, 0,0,0,0,0,0, 0, }, // 0
- { 0,0,0,0, 0,0,0,1, 1,1,1,0, 0,1,1, 0,0,0, 1,1,1, 0, 0,0, 0,0,0,0,0,1, 0,0,0,0,0,0, 0, }, // 1
- { 0,0,0,0, 0,0,1,0, 1,0,1,0, 0,1,1, 0,0,0, 1,1,1, 0, 0,0, 0,0,0,0,1,0, 0,0,0,0,0,0, 0, }, // 2
- { 0,0,0,0, 0,0,1,1, 0,1,1,1, 0,1,1, 0,0,0, 1,1,1, 0, 0,0, 0,0,0,0,1,1, 0,0,0,0,0,0, 0, }, // 3
- { 0,0,0,0, 0,1,0,0, 1,1,0,0, 0,1,1, 0,0,0, 1,1,1, 0, 0,0, 0,0,0,1,0,0, 0,0,0,0,0,0, 0, }, // 4
- { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0, 0,0,0, 0,1,1, 0, 0,0, 0,0,0,1,0,1, 0,0,0,0,0,0, 0,}, // 5
- { 0,0,0,1, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,1, 0,0,0, 1, 0,0, 0,0,0,1,1,0, 0,0,0,0,0,0, 0,}, // 6 10-14
- { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,0, 0,0,0, 0, 1,1, 0,0,0,1,1,1, 0,1,1,1,1,0, 0,}, // 7 z
- { 0,0,1,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,1, 0,0,0, 1, 0,0, 0,0,1,0,0,0, 0,0,0,0,0,0, 0,}, // 8 10-10
- { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,0, 0,0,0, 0, 1,1, 0,0,1,0,0,1, 0,1,1,1,1,0, 0,}, // 9 z
- { 0,0,1,1, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,1, 0,0,0, 1, 0,0, 0,0,1,0,1,0, 0,0,0,0,0,0, 0,}, // 10
- { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,0, 0,0,0, 0, 1,1, 0,0,1,0,1,1, 0,1,1,1,1,0, 0,}, // 11
- { 0,1,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,1, 0,0,0, 1, 0,0, 0,0,1,1,0,0, 0,0,0,0,0,0, 0,}, // 12
- { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,0, 0,0,0, 0, 1,1, 0,0,1,1,0,1, 0,1,1,1,1,0, 0,}, // 13
- { 0,0,0,0, 0,0,0,1, 0,0,0,0, 0,0,0, 0,0,0, 0,1,1, 0, 0,0, 0,0,1,1,1,0, 0,0,0,0,0,0, 0,}, // 14
- { 0,0,1,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,1, 0,0,0, 1, 0,0, 0,0,1,1,1,1, 0,0,0,0,0,0, 0,}, // 15
- { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,0, 0,0,0, 0, 1,1, 0,1,0,0,0,0, 0,1,1,1,1,0, 0,}, // 16
- { 0,0,1,1, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,1, 0,0,0, 1, 0,0, 0,1,0,0,0,1, 0,0,0,0,0,0, 0,}, // 17
- { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,0, 0,0,0, 0, 1,1, 0,1,0,0,1,0, 0,1,1,1,1,0, 0,}, // 18
- { 0,1,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,1, 0,0,0, 1, 0,0, 0,1,0,0,1,1, 0,0,0,0,0,0, 0,}, // 19
- { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,0, 0,0,0, 0, 1,1, 0,1,0,1,0,0, 0,1,1,1,1,0, 0,}, // 20
- { 0,0,0,0, 0,0,1,0, 0,0,0,0, 0,0,0, 0,0,0, 0,1,1, 0, 0,0, 0,1,0,1,0,1, 0,0,0,0,0,0, 0,}, // 21
- { 0,0,1,1, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,1, 0,0,0, 1, 0,0, 0,1,0,1,1,0, 0,0,0,0,0,0, 0,}, // 22
- { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,0, 0,0,0, 0, 1,1, 0,1,0,1,1,1, 0,1,1,1,1,0, 0,}, // 23
- { 0,1,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,1, 0,0,0, 1, 0,0, 0,1,1,0,0,0, 0,0,0,0,0,0, 0,}, // 24
- { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,0, 0,0,0, 0, 1,1, 0,1,1,0,0,1, 0,1,1,1,1,0, 0,}, // 25
- { 0,0,0,0, 0,0,1,1, 0,0,0,0, 0,0,0, 0,0,0, 0,1,1, 0, 0,0, 0,1,1,0,1,0, 0,0,0,0,0,0, 0,}, // 26
- { 0,1,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,1, 0,0,0, 1, 0,0, 0,1,1,0,1,1, 0,0,0,0,0,0, 0,}, // 27
- { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,0, 0,0,0, 0, 1,1, 0,1,1,1,0,0, 0,1,1,1,1,0, 0,}, // 28
- { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,0, 0,0,0, 0, 0,1, 0,1,1,1,0,1, 0,1,1,1,1,1, 0,}, // 29
- { 0,0,0,0, 0,1,1,0, 0,0,0,0, 0,1,1, 0,0,0, 0,1,0, 0, 0,0, 0,1,1,1,1,0, 0,0,0,0,0,0, 0, }, // 30 PQ в POH(6)
- { 0,0,0,0, 0,1,1,1, 0,0,1,1, 0,1,1, 0,0,0, 1,1,1, 0, 0,0, 0,1,1,1,1,1, 0,0,0,0,0,0, 0, }, // 31 Эталонное напряжение в РОН(7)
- { 0,0,0,0, 1,0,0,0, 0,0,0,0, 0,1,1, 0,0,0, 1,1,1, 0, 0,0, 1,0,0,0,0,0, 0,0,0,0,0,0, 1, }, // 32 Считываем полученное напряжение в РОН(8) с шины D
- { 1,0,0,0, 0,1,1,1, 0,0,0,0, 0,0,1, 0,0,1, 0,0,1, 1, 0,0, 1,0,0,0,0,1, 0,0,0,0,0,0, 0, }, // 33 POH(8) - POH(7)
- { 1,0,0,0, 0,1,1,1, 0,0,0,0, 0,0,1, 0,0,1, 0,0,1, 1, 1,1, 1,0,0,0,1,0, 1,0,0,0,1,0, 0,}, // 34 Флаг Z
- { 1,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1, 0,0,0, 1,1,1, 0, 0,1, 1,0,0,0,0,1, 1,0,0,0,0,1, 0, } // 35 Увеличить напряжение для увеличения тока
- };
- for (int i = 0; i < 36; i++) {
- for (int j = 0; j < 37; j++) {
- ROM[i][j] = data[i][j];
- }
- }
- Pin8->setstate(TO_STATE(ROM[0][0]));
- Pin9->setstate(TO_STATE(ROM[0][1]));
- Pin10->setstate(TO_STATE(ROM[0][2]));
- Pin11->setstate(TO_STATE(ROM[0][3]));
- Pin12->setstate(TO_STATE(ROM[0][4]));
- Pin13->setstate(TO_STATE(ROM[0][5]));
- Pin14->setstate(TO_STATE(ROM[0][6]));
- Pin15->setstate(TO_STATE(ROM[0][7]));
- Pin16->setstate(TO_STATE(ROM[0][8]));
- Pin17->setstate(TO_STATE(ROM[0][9]));
- Pin18->setstate(TO_STATE(ROM[0][10]));
- Pin19->setstate(TO_STATE(ROM[0][11]));
- Pin20->setstate(TO_STATE(ROM[0][12]));
- Pin21->setstate(TO_STATE(ROM[0][13]));
- Pin22->setstate(TO_STATE(ROM[0][14]));
- Pin23->setstate(TO_STATE(ROM[0][15]));
- Pin24->setstate(TO_STATE(ROM[0][16]));
- Pin25->setstate(TO_STATE(ROM[0][17]));
- Pin26->setstate(TO_STATE(ROM[0][18]));
- Pin27->setstate(TO_STATE(ROM[0][19]));
- Pin28->setstate(TO_STATE(ROM[0][20]));
- Pin29->setstate(TO_STATE(ROM[0][21]));
- Pin30->setstate(TO_STATE(ROM[0][22]));
- Pin31->setstate(TO_STATE(ROM[0][23]));
- Pin32->setstate(TO_STATE(ROM[0][24]));
- Pin33->setstate(TO_STATE(ROM[0][25]));
- Pin34->setstate(TO_STATE(ROM[0][26]));
- Pin35->setstate(TO_STATE(ROM[0][27]));
- Pin36->setstate(TO_STATE(ROM[0][28]));
- Pin37->setstate(TO_STATE(ROM[0][29]));
- Pin38->setstate(TO_STATE(ROM[0][30]));
- Pin39->setstate(TO_STATE(ROM[0][31]));
- Pin41->setstate(TO_STATE(ROM[0][32]));
- Pin42->setstate(TO_STATE(ROM[0][33]));
- Pin43->setstate(TO_STATE(ROM[0][34]));
- Pin44->setstate(TO_STATE(ROM[0][35]));
- Pin45->setstate(TO_STATE(ROM[0][36]));
- }
- //---- DEVICE::runctrl ------------------------------------------------------------------
- //---- Эта функция вызывается PROSPICE в начале каждого кадра анимации во время интерактивного
- //---- симулирования. Она также называется в конце кадра, который приостановлен или потому что
- //---- пользователь нажал кнопку ПАУЗА, или модели передан аналогичный паузе вызов.
- //---- Эта функция важна при симуляции микропроцессорных моделей для пошаговой отладки и
- //---- установки контрольных точек (breakpoints).
- //---- Функция обеспечивает возможность опрелелить выполняется ли симуляция в интерактивном
- //---- в том случае, если функция не вызвана для пакетного режима анализа.
- //---- Функция также позволяет модели выполнять любые действия по инициаллизации, требующийся
- //---- в начало каждого интервала анимации.
- //----
- VOID FFDEVICE::runctrl (RUNMODES mode)
- {
- //--- Функция может проанализировать параметр (RUNMODES mode):
- //--- RM_BATCH=-1, // BATCH-режим ни разу не вызывался;
- //--- RM_START, // Указывает самый первый кадр (фрейм) анимации.
- //--- RM_STOP, // Симуляция остановлена (нажата кнопка СТОП)
- //--- RM_SUSPEND, // Симуляция приостановлена (нажата кнопка ПАУЗА);
- //--- RM_ANIMATE, // Симуляция свободно выполняется;
- //--- Эти значения представляют интерес при пошаговой отладке:
- //--- RM_STEPTIME, // Кнопка STEP(ШАГ) была нажата
- //--- RM_STEPOVER, // Выполняется "Шаг через подпрограмму"(Step Over command)
- //--- RM_STEPINTO, // Выполняется "Шаг в подпрограмму" (Step Into command)
- //--- RM_STEPOUT, // Выполняется "Шаг из подпрограмму"(Step Out command)
- //--- RM_STEPTO // Выполняется "Шаг к команде"(Step To command)
- //--- их смысл становится понятен, если протестировать пошаговую отладку CPU с программой.
- //--- Здесь можно использовать VOID IINSTANCE::log (CHAR *msg, ...) для контроля.
- //--- Функция добавляет сообщение к log-списку симуляции.
- //--- Эта функция наиболее полезна для отладки новых моделей тогда как log-список
- //--- отображается в всплывающем окне, а сообщения появятся в нём по мере их генерации.
- //--- Функция аналогична "printf" в C и использует аналогичные аргументы [ ... ].
- //--- Пример:
- //--- if (instance) instance->log ("DIGONLY::runctrl() called with mode=%d:%s", mode, EnumToRunCtrl(mode));
- //--- для сообщений без остановки симуляции интересна следующая функция сообщения:
- //--- BOOL IINSTANCE::message (CHAR *msg, ...) - выводит сообщение в строке статуса ISIS.
- //--- Этот сервис доступен только для интерактивного режима симуляции.
- //--- Функция также аналогична "printf" в C и использует аналогичные аргументы [ ... ].
- //--- Есть ряд других, похожих, но более специализированных функций, позволяющих как
- //--- выводить сообщения в log, так и управлять отладкой. (См. Logging and messaging: )
- }
- //---- DEVICE::actuate ------------------------------------------------------------------
- //---- Эта функция вызывается PROSPICE в результате изменения пользователем состояние связанного
- //---- с моделью выключателя, переключателя и т.д. (Некоего устройства ввода).
- //---- Обычно есть необходимость осуществлять эту функцию если Вы используете некоторый тип
- //---- интерактивно управляемого во время симуляции ключа, вспомогательной клавиатуры
- //---- или другого регулируемого во время симуляции компонента.
- VOID FFDEVICE::actuate (REALTIME time, ACTIVESTATE newstate)
- {
- //---- анализируется состояние (ACTIVESTATE newstate)
- }
- //---- DEVICE::indicate ------------------------------------------------------------------
- //---- Эта функция вызывается PROSPICE в конце каждого кадра анимации. Она позволяет
- //---- электрической модели возможность передать информацию обратно на связанный с моделью
- //---- указатель или в графическую модель.
- //----
- BOOL FFDEVICE::indicate (REALTIME time, ACTIVEDATA *data)
- {
- //---- обслуживается структура (ACTIVEDATA *data)
- //---- через неё можно передать информацию в графическую модель(см.VSMSDK.HLP).
- return FALSE;
- }
- //---- DEVICE::simulate ------------------------------------------------------------------
- //---- Эта функция вызывается DSIM если любая из цепей к которым подсоединены входы модели
- //---- изменяет своё состояние в определенное время.
- //---- Модель может опросить текущее и предшествующее состояние любого из своих выводов,
- //---- используя их IDSIMPIN интерфейсы и затем может вызывать IDSIMPIN::setstate, чтобы
- //---- послать любое изменение состояний на свои выходы.
- //---- Модель может использовать СТАРТОВЫЙ вызов, чтобы установить начальные события
- //---- возврата, использующие функцию IDSIMCKT::setcallback.
- //---- СТАРТОВЫЙ вызов (DSIMMODES = BOOT, самый первый шаг по времени. Все модели получают
- //---- вызов их функции "simulate" в процессе загрузки.)
- VOID FFDEVICE::simulate (ABSTIME time, DSIMMODES mode)
- {
- if (ishigh(Pin7->istate())) {
- int adres = 0;
- if(ishigh(Pin1->istate()))
- {
- adres+=1;
- }
- if(ishigh(Pin2->istate()))
- {
- adres+=2;
- }
- if(ishigh(Pin3->istate()))
- {
- adres+=4;
- }
- if (ishigh(Pin4->istate()))
- {
- adres += 8;
- }
- if (ishigh(Pin40->istate()))
- {
- adres += 16;
- }
- if (ishigh(Pin46->istate()))
- {
- adres += 32;
- }
- Pin8->setstate(time, 1, TO_STATE(ROM[adres][0]));
- Pin9->setstate(time, 1, TO_STATE(ROM[adres][1]));
- Pin10->setstate(time, 1, TO_STATE(ROM[adres][2]));
- Pin11->setstate(time, 1, TO_STATE(ROM[adres][3]));
- Pin12->setstate(time, 1, TO_STATE(ROM[adres][4]));
- Pin13->setstate(time, 1, TO_STATE(ROM[adres][5]));
- Pin14->setstate(time, 1, TO_STATE(ROM[adres][6]));
- Pin15->setstate(time, 1, TO_STATE(ROM[adres][7]));
- Pin16->setstate(time, 1, TO_STATE(ROM[adres][8]));
- Pin17->setstate(time, 1, TO_STATE(ROM[adres][9]));
- Pin18->setstate(time, 1, TO_STATE(ROM[adres][10]));
- Pin19->setstate(time, 1, TO_STATE(ROM[adres][11]));
- Pin20->setstate(time, 1, TO_STATE(ROM[adres][12]));
- Pin21->setstate(time, 1, TO_STATE(ROM[adres][13]));
- Pin22->setstate(time, 1, TO_STATE(ROM[adres][14]));
- Pin23->setstate(time, 1, TO_STATE(ROM[adres][15]));
- Pin24->setstate(time, 1, TO_STATE(ROM[adres][16]));
- Pin25->setstate(time, 1, TO_STATE(ROM[adres][17]));
- Pin26->setstate(time, 1, TO_STATE(ROM[adres][18]));
- Pin27->setstate(time, 1, TO_STATE(ROM[adres][19]));
- Pin28->setstate(time, 1, TO_STATE(ROM[adres][20]));
- Pin29->setstate(time, 1, TO_STATE(ROM[adres][21]));
- Pin30->setstate(time, 1, TO_STATE(ROM[adres][22]));
- Pin31->setstate(time, 1, TO_STATE(ROM[adres][23]));
- Pin32->setstate(time, 1, TO_STATE(ROM[adres][24]));
- Pin33->setstate(time, 1, TO_STATE(ROM[adres][25]));
- Pin34->setstate(time, 1, TO_STATE(ROM[adres][26]));
- Pin35->setstate(time, 1, TO_STATE(ROM[adres][27]));
- Pin36->setstate(time, 1, TO_STATE(ROM[adres][28]));
- Pin37->setstate(time, 1, TO_STATE(ROM[adres][29]));
- Pin38->setstate(time, 1, TO_STATE(ROM[adres][30]));
- Pin39->setstate(time, 1, TO_STATE(ROM[adres][31]));
- Pin41->setstate(time, 1, TO_STATE(ROM[adres][32]));
- Pin42->setstate(time, 1, TO_STATE(ROM[adres][33]));
- Pin43->setstate(time, 1, TO_STATE(ROM[adres][34]));
- Pin44->setstate(time, 1, TO_STATE(ROM[adres][35]));
- Pin45->setstate(time, 1, TO_STATE(ROM[adres][36]));
- }
- }
- //---- DEVICE::callback ------------------------------------------------------------------
- //---- Эта функция получает события возврата созданные через IDSIMCKT::setcallback
- //---- Для того, чтобы осуществлять повторяющиеся события, как, например, тактовые
- //---- генераторы, функция возврата должна создать следующее событие возврата,
- //---- вызывая IDSIMCKT::setcallback сама.
- VOID FFDEVICE::callback (ABSTIME time, EVENTID eventid)
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement