void WaitVBlank(BYTE cnt) { XDATA BYTE i; WORD loop; DECLARE_LOCAL_page ReadTW88Page(page); WriteTW88Page(PAGE0_GENERAL ); for ( i=0; i<cnt; i++ ) { WriteTW88(REG002, 0xff ); loop = 0; while (!( ReadTW88(REG002 ) & 0x40 ) ) { // wait VBlank loop++; if(loop > VBLANK_WAIT_VALUE ) { wPrintf("\nERR:WaitVBlank"); break; } } } WriteTW88Page(page); }
void TERMWINDOWMEMBER shownode(const NodesCitC *nd, ModemConsoleE W) { assert (nd); if (!read_node_ddata()) { wPrintf(W, getmsg(59)); return; } const char **nettypes = (const char **) nddd->next->aux; const char **nodemsgs = (const char **) nddd->next->next->aux; wPrintf(W, getnodemsg(14), nd->GetName()); wDoCR(W); wPrintf(W, getnodemsg(15), nd->GetOldRegion()); wDoCR(W); wPrintf(W, getnodemsg(16), nd->GetAlias(), nd->GetLocID()); wDoCR(W); #ifdef WINCIT wPrintf(W, "IpAddress: %s", nd->GetIpAddress()); wDoCR(W); wPrintf(W, "IpPort: %d", nd->GetIpPort()); wDoCR(W); #endif wPrintf(W, getnodemsg(17), nd->GetPreDial()); wDoCR(W); wPrintf(W, getnodemsg(18), nd->GetDialOut()); wDoCR(W); wPrintf(W, getnodemsg(19), bauds[nd->GetBaud()]); wDoCR(W); wPrintf(W, getnodemsg(20), nd->GetLoginMacro()); wDoCR(W); wPrintf(W, getnodemsg(21), nd->GetDialTimeout()); wDoCR(W); wPrintf(W, getnodemsg(22), nd->GetProtocol()); wDoCR(W); wPrintf(W, getnodemsg(23), nd->GetWaitTimeout()); wDoCR(W); wPrintf(W, getnodemsg(24), nd->GetMailFileName()); wDoCR(W); label Buffer; wPrintf(W, getnodemsg(25), nd->GetAutoHall() > 0 ? HallData[nd->GetAutoHall()].GetName(Buffer, sizeof(Buffer)) : getnodemsg(28)); wDoCR(W); wPrintf(W, getnodemsg(26), nd->GetAutoGroup() > 0 ? GroupData[nd->GetAutoGroup()].GetName(Buffer, sizeof(Buffer)) : getnodemsg(28)); wDoCR(W); wPrintf(W, getnodemsg(27), GroupData[nd->GetMapUnknownGroup()].GetName(Buffer, sizeof(Buffer))); wDoCR(W); wPrintf(W, getnodemsg(29), nettypes[nd->GetNetworkType()], nd->GetNetworkRevisionNumber() ? nd->GetNetworkRevisionNumber() + '@' : ' '); wDoCR(W); wPrintf(W, getnodemsg(30), nd->GetCreatePacket()); wDoCR(W); wPrintf(W, getnodemsg(31), nd->GetExtractPacket()); wDoCR(W); wPrintf(W, getnodemsg(32), nd->IsAutoRoom()); wDoCR(W); wPrintf(W, getnodemsg(33), nd->GetRequest()); wDoCR(W); wPrintf(W, getnodemsg(34), nd->IsGateway()); wDoCR(W); wPrintf(W, getnodemsg(35), nd->GetFetch()); wDoCR(W); wPrintf(W, getnodemsg(36), nd->GetNetFail()); wDoCR(W); wPrintf(W, getnodemsg(37), nd->GetRedial()); wDoCR(W); wPrintf(W, getnodemsg(38), nd->GetOutputPace()); wDoCR(W); dump_node_ddata(); }
Bool ResolveMessageAddressingIssues(Message *Msg, ModemConsoleE W) #endif { l_slot logslot; if (*Msg->GetToNodeName()) { logslot = FindPersonByPartialName(Msg->GetToNodeName(), NULL); } else { logslot = FindPersonByPartialName(Msg->GetToUser(), NULL); } if (logslot == CERROR && *Msg->GetDestinationAddress()) { logslot = nodexists(Msg->GetDestinationAddress(), NULL); if (logslot != CERROR) { label Buffer; Msg->SetToNodeName(LogTab[logslot].GetName(Buffer, sizeof(Buffer))); label Buffer1, ToAddress; makeaddress(LogTab[logslot].GetAlias(Buffer, sizeof(Buffer)), LogTab[logslot].GetLocID(Buffer1, sizeof(Buffer1)), ToAddress); Msg->SetDestinationAddress(ToAddress); } } if (logslot == CERROR) { if (!*Msg->GetToNodeName()) { // forward 'sysop' messages to #sysop if #forward if (SameString(Msg->GetToUser(), getmsg(386)) && cfg.forward && (FindPersonByName(cfg.sysop, NULL) != CERROR)) { Msg->SetToUser(cfg.sysop); if (TW) { tw()wPrintf(W, getmsg(563), cfg.Lmsg_nym, cfg.sysop); tw()wDoCR(W); } } else if (!SameString(Msg->GetToUser(), getmsg(386)) && !SameString(Msg->GetToUser(), getmsg(385)) && !IsMailingList(Msg->GetToUser())) { if (TW) { tw()wDoCR(W); tw()wPrintf(W, getmsg(595), Msg->GetToUser()); tw()wDoCR(W); } return (FALSE); } } } else { if (*Msg->GetToNodeName()) { label Buffer; Msg->SetToNodeName(LogTab[logslot].GetName(Buffer, sizeof(Buffer))); } else { label Buffer; Msg->SetToUser(LogTab[logslot].GetName(Buffer, sizeof(Buffer))); } if (LogTab[logslot].IsNode() && !(*Msg->GetToNodeName())) { Msg->SetToNodeName(Msg->GetToUser()); Msg->SetToUser(getmsg(386)); if (TW) { tw()wPrintf(W, getmsg(562), cfg.Umsg_nym, Msg->GetToNodeName()); tw()wDoCR(W); } } } if (logslot != CERROR && !*Msg->GetToNodeName()) { LogEntry1 Log1; label ForwardAddr; if (Log1.Load(LogTab[logslot].GetLogIndex()) && *(Log1.GetForwardAddr(ForwardAddr, sizeof(ForwardAddr)))) { if (!Log1.IsForwardToNode()) { // Regular forwarding l_slot logslot2; logslot2 = FindPersonByName(ForwardAddr, NULL); if (logslot2 != CERROR) { label Buffer; LogTab[logslot2].GetName(Buffer, sizeof(Buffer)); Msg->SetForward(Buffer); if (TW) { tw()wPrintf(W, getmsg(561), cfg.Umsg_nym); tw()wPrintf(W, pcts, Msg->GetForward()); } } if (TW) { tw()wDoCR(W); } } else { // Forwarding to node label Buffer; Log1.GetForwardAddrNode(Buffer, sizeof(Buffer)); Msg->SetForward(ForwardAddr); Msg->SetToNodeName(Buffer); if (TW) { tw()wPrintf(W, getmsg(561), cfg.Umsg_nym); tw()wPrintf(W, getmsg(101), ForwardAddr, Buffer); } } } } return (TRUE); }