Date: Mon, 8 Feb 93 04:30:11 PST From: Advanced Amateur Radio Networking Group <tcp-group@ucsd.edu> Errors-To: TCP-Group-Errors@UCSD.Edu Reply-To: TCP-Group@UCSD.Edu Precedence: Bulk Subject: TCP-Group Digest V93 #37 To: tcp-group-digest TCP-Group Digest Mon, 8 Feb 93 Volume 93 : Issue 37 Today's Topics: KA9Q NOS and EMS Multi-Port RSPF (7 msgs) NOS TEXT NTP and RDATE PE1CHL Help rcs and source (2 msgs) RDATE questions and comments (3 msgs) STAT Verifying have proper CPU for executable XMODEM for NOS Send Replies or notes for publication to: <TCP-Group@UCSD.Edu>. Subscription requests to <TCP-Group-REQUEST@UCSD.Edu>. Problems you can't solve otherwise to brian@ucsd.edu. Archives of past issues of the TCP-Group Digest are available (by FTP only) from UCSD.Edu in directory "mailarchives". We trust that readers are intelligent enough to realize that all text herein consists of personal comments and does not represent the official policies or positions of any party. Your mileage may vary. So there. ---------------------------------------------------------------------- Date: Sat, 6 Feb 93 18:18:19 -0800 From: Phil Karn <karn@qualcomm.com> Subject: KA9Q NOS and EMS To: Alan Cox <iiitac@pyr.swan.ac.uk> >Has anyone done any work with allocating local memory in EMS blocks under >KA9Q, before I start fiddling with it. > >ALan Not that I'm aware of. I suspect this will be difficult, considering NOS's heavy dependence on dynamic memory allocation and linked lists. I've heard suggestions of using EMS or XMS to hold the screen scrollback buffers, but a much easier way to accomplish the same thing is to put the temp files on a ramdisk. Phil ------------------------------ Date: Sun, 7 Feb 1993 00:01:01 -0500 From: goldstein@carafe.tay2.dec.com (k1io, FN42jk) Subject: Multi-Port RSPF To: tcp-group@ucsd.edu Phil Karn notes, >Maybe the problem is that you're putting RSPF at the wrong level. The >problem isn't really with the NOS routing code per se, it's with the >Internet model itself which says that subnets are fully connected. >Maybe the right place for RSPF is *below* IP, where it has direct >access to each physical interface. It could then provide IP with what >it wants in the first place (a subnet that appears to be fully connected) >and it could be used to support protocols other than IP. We can argue forever as to who's at fault, but the fault remains: The "Internet model" of "subnet" simply doesn't apply to packet radio, where connectivity is never reliable. That's why RSPF is not OSPF, RIP, or anything else. It's purpose-built for radio, and actually doesn't understand "subnets" (in the Internet sense) at all. Instead of subnets, RSPF considers every host to be a "network", but creates "node groups" as a way of rolling up information. A subnet is a form of node group, but an RSPF node group isn't a subnet because it can't assume perfect connectivity. I introduce this semantic distinction because when people say "subnet", they indeed expect full connectivity. I could create a routing protocol that handles everything else besides IP, but that would be clumsier for pure IP. I mean, there is "TheNET and its clone" (I think that's what I call it in the RSPF doc) which is a pretend-routing subnet. But IP people expect routing to work with IP addresses. Unfortunately, because of the "subnet" concept, they put routing on top of the IP layer, which breaks when subnets don't exist. The real problem as I see it is that the NOS IP interprets node groups (44.56.0.128/7) as internally-connected subnets. RSPF treats them as "probably connected", but really needs a way to test them. I'd rather meet you half way: Put RSPF _in_ the same layer as IP, with the same access to the lower layers (what OSI calls subnets and what IP Classic calls Networks, as in AX.25) as IP. And let RSPF build the routing tables for IP, using no true subnets at all, but using node groups which just happen to work the same way and make use of the same code. The only problem I see with this is that it mimics the OSI RM view, in which IS-IS lives in Layer 3 and not above it, and some folks are religiously opposed to doing things the same way as they do. I'm to practical to get involved in religious warfare. (We have enough hams already pretending to be non-ham 4N4s.) And maybe it requires a minor rewrite to the IP_Route module in NOS, to allow RPSF to directly test routes without destroying contradictory information (other routes to the same destination) already on the route table. But if we promise to never call them "subnets", and declare that if RSPF is on, the subnet mask is always "FF FF FF FF", then we aren't even technically breaking the IPRM. fred k1io (still hoping somebody will implement RSPF 2.2) ------------------------------ Date: Sun, 7 Feb 1993 00:16:23 -0500 From: goldstein@carafe.tay2.dec.com (k1io, FN42jk) Subject: Multi-Port RSPF To: tcp-group@ucsd.edu Andy Warner asks, >> The RSPF problem is not restricted to multi-homed hosts, where the host >> [...] >> getting permanently locked and such. >So, the only currently available platform that would want or need >RSPF can't have it, is that the abridged version ? It's not _only_ useful on multi-homed hosts. Because radio networks are never "fully connected" like Ethernets, it's possible for one station to hear two others who don't hear each other. RSPF allows that kind of one-channel routing. That part actually works halfway decently in the existing V2.1 code. fred k1io ------------------------------ Date: Sun, 7 Feb 1993 1:39:11 -0500 (EST) From: MIKEBW@ids.net (Mike Bilow, <MIKEBW@ids.net>) Subject: Multi-Port RSPF To: karn@qualcomm.com, tcp-group@ucsd.edu I'm not sure I like this new situation where Phil and Fred are starting to agree on moving RSPF below IP... RSPF actually doesn't fit into the layering model very well. Network routing is really at least a Network layer function, and it can be debated as to whether it should be considered a Transport layer function. However, a routing protocol is necessarily bound to the Network layer, in that RSPF becomes non-sensical unless it is used to route IP frames. Fred captures the underlying problem very well in a few sentences. RSPF can't test a route with an IP frame unless that route is on the IP routing table, but it should not put a route on the IP routing table unless it already know that the route is good. There are several ways to fix this, none of them even close to easy to code, and some not even easy to describe. Phil's idea about having RSPF talk directly to interfaces, bypassing IP, is a coding nightmare. Worse, I can't see any easy way to do this without assuming RSPF to be running at both ends, and one of the major advantages of the original design is that only one end of a link must run RSPF. Still worse, this would force RSPF to be local in scope, abandoning the whole link-state model of which Fred is justifiably fond. Another serious problem is that RSPF should be able to establish routes across any type of interface. Otherwise, two RSPF routers linked by SLIP or Ethernet would be unable to learn about the routes which the other acquired by RSPF. I suppose that trult awful kludges could be arranged, such as using RIP across SLIP or Ethernet to propagate RSPF routes, but this would be extremely messy. Ultimately, the only way out is to replicate most of the IP routing code inside the RSPF code, so that RSPF tests routes using a different table than then the "real" IP routing code. I have phrased this as "virtualizing the IP routing table" in the past, and it is a lot of work. Simpler solutions, such as adding a SunOS-like "DONTROUTE" flag to the IP router really are not going to do it. A corollary problem is that the RSPF code must be capable of testing more than one route at a time, and this would require multiple virtual IP routing tables. In addition, the layering in the original proposal was not entirely clear, an issue which Fred and I have discussed previously on many occasions. For example, Fred strictly requires that the two main types of RSPF information, the "Router-to-Router Hello" and the "RSPF Update" frames, be sent above IP directly, effectively making RSPF its own Transport layer protocol. Aside from the seven-layer model, there really is no functional gain realized by doing this instead of, say, letting RSPF use a UDP socket, while the penalty in complexity and size of code is substantial. On the other hand, RSPF uses conventional ICMP Echo Request messages ("pings") to test routes, which is the root of its problems, since this makes RSPF dependent upon another Transport layer protocol for its operation. Not only is RSPF itself crossing the protocol layers, which is really inevitable in any routing protocol, but it is intertwined with other things that cross protocol layers, especially ARP. Because the basic purpose of ARP is to map a relationship between the Network and Link layers, it is a particularly awkward place to tie anything into, let alone something as complicated as RSPF. Of course, RSPF does not depend upon ARP to work, as long as the other end of the link also runs RSPF; ARP is only used by RSPF to pick up potential links to routers which are not themselves running RSPF, since they do not send RRH frames. Multiport RSPF is not a minor problem. It is an impasse. -- Mike Bilow, <mikebw@ids.net> (Internet) ------------------------------ Date: Sun, 7 Feb 1993 1:55:02 -0500 (EST) From: MIKEBW@ids.net (Mike Bilow, <MIKEBW@ids.net>) Subject: Multi-Port RSPF To: andyw@aspen.cray.com, tcp-group@ucsd.edu I think the abridged version is that RSPF does not currently work, and that this is not going to be easy to fix. I was not suggesting that IP addresses would be independent of routing, but only that they would not imply routing. The proper use of RSPF is not to publish every known route to every known host, but rather to propagate the minimum necessary routing exceptions to the usual routes. There is no reason to assign IP addresses in a meaningless order so that there is no relationship to routing, and it is true that this would be grossly inefficient. However, a host should not be tied down by its IP address, and RSPF is what gives it freedom to roam. -- Mike Bilow, <mikebw@ids.net> (Internet) ------------------------------ Date: Sun, 7 Feb 1993 22:34:39 -0500 From: goldstein@carafe.tay2.dec.com (k1io, FN42jk) Subject: Multi-Port RSPF To: tcp-group@ucsd.edu Actually, this is to Phil and Mike, and the interested tcp-group readers... >I'm not sure I like this new situation where Phil and Fred are starting >to agree on moving RSPF below IP... Don't worry, Mike, you don't have to worry... Phil and I don't agree. I want RSPF parallel to IP, he wants it below. Phil, Mike describes well why I don't want RSPF to be below IP. I could certainly write a link-state protocol to run there, but it would be Yet Another Competitor for TheNET, and not solve the IP problem. The ARPAnet predates significant use of LANs anyway; in those days (I was using it from '78), everybody was tied to a TIP or IMP. Routing was whatever they felt like trying that month. >In addition, the layering in the original proposal was not entirely clear, >an issue which Fred and I have discussed previously on many occasions. For >example, Fred strictly requires that the two main types of RSPF information, >the "Router-to-Router Hello" and the "RSPF Update" frames, be sent above IP >directly, effectively making RSPF its own Transport layer protocol. Aside >from the seven-layer model, there really is no functional gain realized by >doing this instead of, say, letting RSPF use a UDP socket, while the penalty >in complexity and size of code is substantial. I'm not terribly religious about this: If UDP sockets actually helped without getting in the way of things like route testing, I'd not object. But to me, that's a bigger violation of layering. RSPF is a routing function, and I define that as being Network layer, while UDP is a higher layer. Just because RSPF sits atop IP doesn't mean it leaves the network layer -- it's simply another member of that layer. But IP does tend to think strangely about that. >On the other hand, RSPF uses >conventional ICMP Echo Request messages ("pings") to test routes, which is >the root of its problems, since this makes RSPF dependent upon another >Transport layer protocol for its operation. Pings are used because they can be sent to non-routers as well as to routers, to establish IS-ES connectivity. Do you have an alternative proposal? >Multiport RSPF is not a minor problem. It is an impasse. That's rather defeatist. IF it's realistic, then what do you propose as an answer? Basically, I'm convinced and I think you are that "IP Classic" routing, based on subnets, won't hack it on radio. So we either fall into Phil's solution, of using a non-IP subnet to schlep around IP frames among participating routers (and fight TheNET, ROSE, and Plain AX.25), or we abandon IP. Now I admit that I originally started on RSPF after being convinced to abandon a non-IP routing protocol that I was developing for packet radio, after Mike Chepponis got me in touch with tcp-group (ca. 1987). Do you suggest I go back to a non-IP routing protocol? That's why I was proposing that we make some changes to the layering assumptions in IP, by defining out the subnet. It lets end systems think they're using IP, and in fact it is IP except for the subnet concept. But of course it won't work using IP Classic routing code. Lesssee... AmTUBAnet? fred k1io ------------------------------ Date: Sun, 7 Feb 93 22:06:00 -0800 From: Phil Karn <karn@qualcomm.com> (Phil Karn) Subject: Multi-Port RSPF To: karn@qualcomm.com, tcp-group@ucsd.edu, At 7 Feb 1:39 -0500 (EST), MIKEBW@ids.net (Mike Bilow, ) wrote: >RSPF actually doesn't fit into the layering model very well. Network >routing is really at least a Network layer function, and it can be >debated as to whether it should be considered a Transport layer function. >However, a routing protocol is necessarily bound to the Network layer, >in that RSPF becomes non-sensical unless it is used to route IP frames. Well, maybe it doesn't fit into the ISO layering model very well, but that doesn't mean it can't be done in a simple and elegant fashion. Lots of real networks (one might say all!) don't fit into the ISO layering model very well! All you need is multiple network layers. That's the core idea of the Internet. The upper network layer in the Internet is IP. Below IP you can have simple links, or you can have entire complex networks. All IP expects (at least traditionally) is a virtual subnet that appears to be fully connected. How that network provides that internal connectivity is irrelevant. It could be inherent, as in an Ethernet, or it could be an ARPANET, with its own internal routing and network management algorithms. IP knows (or knew) nothing about ARPANET, and ARPANET knew nothing about IP. They're distinct. There's already precedent for this in AMPRNET: running IP atop NET/ROM. The only problem is that NET/ROM itself is broken. All you have to do is to throw it away and reinvent it properly. The remainder of your post is simply a proof by contradiction (though you may not realize it) that packet radio needs a distinct network layer. Forget for the moment about IP and ARP. Just build a connectionless packet radio network with callsigns as addresses, a link state algorithm for routing, and in the end you'll actually support IP that much better. Phil ------------------------------ Date: Mon, 8 Feb 93 09:26:17 GMT From: Alan Cox <iiitac@pyr.swan.ac.uk> Subject: Multi-Port RSPF To: andyw@aspen.cray.com, tcp-group@ucsd.edu XT's and disk and big routing tables. An XT is more than capable of handling bit routing tables even mostly off disk if the structure is sensible. It's like the domain.txt file which also ought to be in a sensible record oriented format for speed... ALan ------------------------------ Date: Sun, 7 Feb 93 11:08:33 EST From: crompton@NADC.NAVY.MIL (D. Crompton) Subject: NOS TEXT To: tcp-group@ucsd.edu Anyone want to guess how much NOS would reduce in size if all of the text was taken out?? Probably a considerable amount. This WAS mentioned before - storing the text in a file and using a token in NOS???? Doug ------------------------------ Date: Mon, 8 Feb 93 00:49:51 EST From: ron@chaos.eng.wayne.edu (Ron Atkinson - N8FOW) Subject: NTP and RDATE To: tcp-group@ucsd.edu With the latest discussion about NTP I dug through some disks and found the NTP code for NOS that was out for the 910614 version. I uploaded it to UCSD.EDU. I was going to put it in JNOS but after looking briefly at it I decided I have other things to do :-) Also the topic seemed to mainly be about running RDATE over packet and not primarily over ethernet. I've been putting RDATE in JNOS for quite a while (it's now in the released source) when I got it from another ham in the group and used it primarily for users on packet to keep their clocks somewhat accurate and at least within minutes of each other. Regular packet is too slow for any accurate time, but it gets you in the ball park. I ran NTP for a while on the internet just to play with it and I always thought that it would be good for things like the packet radio <> internet gateways to run on the internet side and RDATE on the radio side. The gateway will be up most of the times anyways for it to keep accurate time with the polling and a regular users on packet can do an rdate when they first come up or periodic timed execution. With the current packet radio network I couldn't see NTP being very practical over it so that's why RDATE was used (plus just about every Unix system has it in it so servers are widely available). Ron N8FOW ------------------------------ Date: Sat, 06 Feb 1993 12:26:23 From: ccmcgone@mtu.edu (Charles McGonegal - N8OKM) Subject: PE1CHL Help To: tcp-group@ucsd.edu I'm looking for infomation on the pe1chl version of Net. 1) Does anyone know where a version newer than 920420 is available for anonymous ftp? The history file includes notes for versions past 920420, but I haven't been able to find the code itself. 2) Can anyone direct me toward information on using the MIDI ports on an Atari ST as a second serial port? The PE1CHL docs say that this is possible, but not HOW. Thanks. Please reply to ccmcgone@mtu.edu ------------------------------ Date: Sat, 6 Feb 93 18:16:30 -0800 From: Phil Karn <karn@qualcomm.com> Subject: rcs and source To: <DEVANS%COLOLASP.BITNET@CORNELLC.cit.cornell.edu> One major reason I release my RCS files is because they contain comments I make as I update each file. Anyone who wants to see what has changed lately can easily read them, and it saves me from having to remember everything I have done since the last release (which I can never do anyway). And just as important, it makes it much easier to reconcile patches made by others, as they can just create a branch off my source tree. And they can choose some version of a file other than the most current, e.g., to avoid a recent change that breaks something in the user's configuration. I could upload both my RCS files and the latest sources extracted from them, but this gets tedious over even a fast SLIP link. If the FTP server on ucsd.edu supported my new XMD5 command, that would make the task *much* easier. (Hint...) What we *really* need, of course, is an FTP server that can do RCS checkouts instead of simple retrieves... Phil ------------------------------ Date: Sun, 7 Feb 1993 22:46:57 -0500 From: chk@alias.com (C. Harald Koch) Subject: rcs and source To: tcp-group@ucsd.edu Phil writes: > What we *really* need, of course, is an FTP server that can do RCS > checkouts instead of simple retrieves... There are already FTP servers out there that support automated tar, compress, uuencode, etc. of files. They use heuristics based on filename (i.e. if I ask for dir.tar.Z and dir exists, ftpd runs the tar and compress and feeds the output to me). Using one of these it should be easy to add code that says "if a requested file doesn't exist, check for the RCS file and check out the latest revision for transmission". I think I have one of these FTP servers lying around; I'll take a look at it and see how difficult the changes would be. Of course, this assumes that Brian would be receptive to running a new ftp daemon on ucsd.edu... :-) -- Main's Law: For every | C. Harald Koch Alias Research, Inc. Toronto, ON action, there is an equal | chk@alias.com (work-related mail) and opposite goverment | chk@gpu.utcs.utoronto.ca (permanent address) program. | VE3TLA@VE3OY.#SCON.ON.CA.NA (AMPRNet) ------------------------------ Date: Sat, 06 Feb 1993 13:08:42 -0500 From: "Louis A. Mamakos" <louie@NI.umd.edu> Subject: RDATE questions and comments To: "Jerzy Tarasiuk" <JT@zfja-gate.fuw.edu.pl> The protocol mentioned below is NTP (Network Time Protocol). If you are at all serious about keeping good time, you really should take time to read it to understand the techniques that it uses. In short, NTP is a peer-to-peer or client-to-server protocol; it is necessary to exchange packets in order to determine an estimated clock offset and network delay. Consider a host "host" that want to know what is clock offset and delay is with respect to host "peer". The packet contains these 3 timestamps: the Originate, Received, Transmitted and you maintain a state variable of the Peer_Received, of the last time you received a packet from the peer. So, t3 = Originate, the time which a query was sent from "host" t2 = Received, the time which the query was received at "peer" t1 = Transmitted, the time the reply was sent from "peer" t0 = Peer_Received, the time the reply was received at "host" Note that t3 and t0 are using the "host" idea of a time scale, while t2 and t1 are using the "peer" idea of a time scale. It is assumed that these two are pretty close in frequency (that is, the rate at which they advance) and differ mainly in phase (that is, the offset). The clock offset can be determined by (t2 - t3) + (t1 - t0) offset = --------------------- 2 while round trip delay is simply delay = (t0 - t3) - (t1 - t2) The offset computation assumes that the network delay is symmetric, otherwise a bias will be introduced into the computed clock offset. If you want good time, then it is necessary to have multiple packet exchanges, and then employ filtering techniques to discard anomolous offset/delay samples, select amongst a number of clocks, etc. This is what NTP does. It has a mode of operation where you continuously exchange NTP polls with one or more reference clock, no more frequently than every 64 seconds (and backing off to very 1024 seconds or so) to estimate your clock's instrinsic drift rate. It employs some rather sophisticated filtering techniques to select an offset/delay from a set of 8 samples, as well as a model for how the local clock is maintained. Note that if you want to have reliable samples, you can't be shoving the clock around without invalidating all of your saved samples, etc. Over a typical Internet WAN, it should be possible to stay synchronized to within 20 milliseconds or better. Time hacking is way cool stuff. We just got in a Motorola GPS receiver with a 1 pulse per second output, synchronized with UTC. Claims specifications are within 100ns of the correct time. I will be interesting to compare this with the WWVB clock that we have. Given the two, we should be able to measure the changing height of the D layer of the ionosphere which will change the propagation delay from WWVB in Colorado to Maryland. NTP is already accurate enought that I can resolve temperature variations in my office by looking at the effect on the computed clock drift rate as the computer's crystal oscillator changes frequency. Of course, this is over multiple ethernet hops, not your typical crappy AX.25 transport. louie WA3YMH > Abount time synchronization: I don't know the protocol used for it, > but know IP puts TTL in header and the TTL is used to count and limit > time spent: assume packet was sent at 20:11:43 and has TTL 100, on > destination it has TTL 43 and passed through 7 nodes, then we know it > reached destination not later than 20:12:40 and not earlier than > 20:12:33 (time spent on every node is rounded up to integer number of > seconds and cannot be 0; it is simply subtracted from TTL of packet). > However, I don't know a way for more precise synchronization. > 73's, JT ------------------------------ Date: Sat, 6 Feb 93 19:18:08 PST From: "Jerzy Tarasiuk" <JT@zfja-gate.fuw.edu.pl> Subject: RDATE questions and comments To: "Louis A. Mamakos" <louie@NI.umd.edu> > Message-Id: <9302061808.AA11829@sayshell.umd.edu> > Subject: Re: RDATE questions and comments > Date: Sat, 06 Feb 1993 13:08:42 -0500 The NTP is good assuming delay times are same in both directions. And it is "nihil novi sub sole": the formula was described probably more than century ago by a mathematician in short story: "How to get accurate time when you noticed your home clock stopped" - it was a long time ago, when there were no phones, watches and many other useful thing and only several people in a city owned home clocks. His advice: first make own clock go, look what time it shows, walk to a friend having correctly set clock, look what time is on his clock, spent some time talking with him, look at his clock again and go home, look on own clock and then use the formula, finally add one minute spent on computations to get accurate time home clock should be set to. Of course need go with same speed in both directions... On network: if packet is sent directly, delay is very small (70ms to opposite side of Earth) and usually same in both directions, at least on cable (on air it is not due to reflections in ionosphere, but variations should not exceed hundreds of microseconds, usually less). But if a packet is routed, delay on router can be large, and not same for both directions. Use of TimeStamp ICMP is good when need sync time with nearest node only, being useless otherwise (only if all inter- mediate nodes attempt to sync time it may be good). I suppose TimeStamp option can give better results assuming packets go same way in both directions (seems there is an option to force path for packet) and from time to time every node retransmits it almost immediately for ANY direction (if there is always delay for one, result is wrong). But: if packets are sent via radio line and one side needs 50ms for transmitter to turn on and stabilize frequency and second 4ms only, I see no way to eliminate 23ms bias caused by it. > NTP is already accurate enought that I can resolve temperature > variations in my office by looking at the effect on the computed clock > drift rate as the computer's crystal oscillator changes frequency. Of > course, this is over multiple ethernet hops, not your typical crappy > AX.25 transport. If there is constant bias in one direction your time is bad, but you don't see it. 73's, JT (on ethernet, too) ------------------------------ Date: Sat, 6 Feb 1993 21:12:13 +0100 (MET) From: rzm@oso.chalmers.se (Rafal Maszkowski) Subject: RDATE questions and comments To: tcp-group@ucsd.edu (tcp) Jerzy Tarasiuk writes: > However, I don't know a way for more precise synchronization. Maybe ICMP time stamp request - if it was not discussed before. R. -- Rafal Maszkowski, rzm@oso.chalmers.se, rzm@mat.torun.edu.pl NCU BBS (+48 56 14252, N81, MNP5, 2400) Rafal.Maszkowski%p23.f1.n481.z2.fidonet.org%ncubbs@cc.ncu.edu.pl ------------------------------ Date: Sun, 7 Feb 93 11:04:36 EST From: crompton@NADC.NAVY.MIL (D. Crompton) Subject: STAT To: tcp-group@ucsd.edu Here we go again.... can someone summarize the status of the STAT function. I.E. where it works where it does not and possibly why? If I remember the blame was never squarely placed with Borland? It sure would make life a lot easier if it could be used in NOS. I had a message a local about being able to CD to a file. Yes you can in fact do that in NOS and in FTP because without using the STAT function you can check for existence but not if it is a directory or file. I know Johan recently stripped all stat stuff out using a function (filesize) to determine filesize. Is there any hope of this ever being fixed? Doug ------------------------------ Date: Mon, 8 Feb 93 11:13:14 PST From: "Jerzy Tarasiuk" <JT@zfja-gate.fuw.edu.pl> Subject: Verifying have proper CPU for executable To: MIKEBW@ids.net (Mike Bilow, <MIKEBW@ids.net>) I have read NetNews last time and found someone's msg about his troubles with program modifying .EXE-s, he shown formula used to compute loadable module size and told it is incorrect and he needs to know correct formula. I looked into my program used to add CPU checking code to an .EXE and found it uses bad formula, too. Now it is fixed and good code is in ./CPU/CHKCPU2.ZIP on zfja-gate. Difference in the program: old eomm=(((long)(oldh.npag-1))<<9)|oldh.lpbc; new eomm=(((long)oldh.npag)<<9)-((0x200-oldh.lpbc)%0x200); (to be more strange, new header was set correctly by my program, due to my another mistake; no need to change it) 73's, JT ------------------------------ Date: Sat, 6 Feb 93 23:06:13 EST From: crompton@NADC.NADC.NAVY.MIL (D. Crompton) Subject: XMODEM for NOS To: nos-bbs@hydra.carleton.CA I have completed porting xmodem to the NOS BBS. It is in beta test and running well. It of course only works with tipmail connects - usually via phone modem. I am using it with a 2400 baud phone modem. A number of local users are currently running it thru it's paces and so far all seems well. The commands (tipmail only) are 'dx <filname>' and 'ux <filename>' after which you get the normal xmodem messages. The biggest problem in doing this was to put the tip code (input and output) in totally raw mode. After getting around this the original unix source was fairly easy to adapt to NOS, being that it has many unix like commands - I.E. alarm. I will SHARE this code probably early this coming week. It is based on JNOS107B. Several modules are changed/added. The code adds about 1.5K to the compressed compiled size. It has a define in config.h. This should be a nice addition to NOS allowing newcomers to log in with any computer and modem and download the code. If anyone wants to try this out on my system, send me private mail and I will pass along the login details. Doug ------------------------------ End of TCP-Group Digest V93 #37 ****************************** ******************************