CompuServe Messages

kprintf()

#: 48368 S10/ProgrammingForum unknown
    12-Jan-87 17:55:58
Sb: #48302-kprintf()
Fm: John Yurkon 70606,425
To: Larry Phillips/ICUG 74025,636

This message turned up in search, but its forum couldn’t be identified from the original transcript, so it may not be linked into its thread.

Threehundred years later… Yes, amiga.lib is interesting. Please rp(e/OMD/ObjDump/) on all my previous statements. I forgot that OMD doesn't work on linked-libraries. Well, sorta worked on debug.lib. Anyway I was suprized to see so many Absolute references. These must just be the addresses of the pointers to the actual routines? End of listing was interesting also: _romstart ….. _bootrom ….. _cartridge F00000 _cartridge!? What do they have planned? Hardware manual simply says this address space is reserved for future use. ————– How do you estimate how big the file will be after it's downloaded and how long is it going to take? Why are there 2 file sizes listed? Good questions…and here's the answers: As part of the description of a file in our Data Bases, CIS shows you how a file is stored and shows how large the file is AS STORED ON CIS, and an approxitimation of the file size in binary (8 bit) data bytes. As you browse thru our files you will see a number or set of numbers after the filename. If there is only 1 number listed, then the file is stored as ASCII text and can be read on-line. The file size listed is correct and needs no modification to estimate how big the file will be after downloading. As an example, this file is shown as: TIME.HLP 5985 That means that this file is ASCII text, and is 5,985 bytes long. If there are 2 numbers listed for the filesize, the file is a binary file and one of the numbers will be listed in parenthesis. The first number is based on the way that CIS stores binary files. CIS uses a method known as Packed Intel Hex, and this always makes the file more than twice it's actual size. You can ignore this number. The 2nd number is an approxitimation of how big the file is in binary data. For some reason, this size is always about 10% too high; however, there is a way you can get a very close estimate. Again, lets take an example from our database. ASM101.ARC 250190(106752) This shows that this is a binary file, and CIS approxitmates it's binary size to be 106,752 bytes long. This number is too high and to convert to a useable number take the value inside the parenthesis and divide by 139. Then for every 100,000 bytes listed, add 1 block to the number you calculated. In this case, you would get 106752/139 = 768. Add the 1 block since the file shows over 100,000 and you come up with 769. In fact, to download this particular file takes 769 blocks, so the estimate is exact. To determine the approxitimate file size, multiply the 769 times 128 (the amount of actual data transfered during 1 Xmodem block) and you come up with 98432 bytes. This estimate doesn't take into account any chopping done of the last block but the estimate is very close to actual file size. Estimating time to download is a bit harder. There are lots of variables that can effect the amount of time to download. If you connect to CIS via a direct node, your time will generally be faster than if you connect via an intermediary service such as Tymnet or DataPac. System useage can also play a part in the amount of time it takes to download a file, if system usage is very high, then it can take longer to download a file and that is why we reccomend that you do all up/downloads at slow system times (usually after midnight Eastern Time). Your terminal software can also effect the amount of time it takes to download a file. If your terminal program writes out a block each time it receives one, it will take longer to download than if your terminal software buffers several bytes and only writes to disk every now and then. You can avoid some of this by downloading to RAM: and then copying the file to disk after the transfer is completed, but use caution downloading to RAM:. If you don't have enought free RAM to hold the file, the transfer will terminate due to lack of space, and you won't have the file you were trying to get. Taking all that into consideration, we have come up with a reasonable way to estimate file transfer time. The estimates below are based on using a 1200 baud modem….the estimated values for 300 or 2400 baud are shown in parenthesis after the 1200 baud estimate. Under absolutely ideal conditions, with no delays whatsoever it takes about 1.2 seconds to transfer 1 Xmodem block of data (2400 = .6 sec, 300 = 4.8 sec). That time can never be reached on a packet switched network like CIS due to the reasons above, so for estimation purposes, double it. That means that to transfer 1 block at 1200 baud takes about 2.4 seconds (2400 = 1.2, 300 = 9.2). Now take the estimate number of blocks and multiply by the number of seconds per block from about. Using our sample file, 769 blocks times 2.4 seconds equals 1845.6 seconds…or dividing by 60 = 30 minutes to transfer the file. Using 2400 baud would take about 15 minutes and using 300 baud would take about 2 Hours! I did 2 sample downloads, the first at 2400 baud in fact took 15 minutes. The download at 1200 baud only took 26 minutes so you see this is also a fairly accurate estimation. The 2 downloads were done at different times of the day, so system usage does play a factor. What about if you are using B-Protocol? B-Protocol transferusually takes about 10% less time than Xmodem transfers so at 1200 baud. Thus the estimate for B-Protocol would have been 27 minutes at 1200 baud. Also, B-Protocol blocks are 4 times as large as Xmodem blocks, so you will get approxitmately 193 blocks using B-Protocol, but do NOT use this block number to figure out the estimated time to download. Figure your estimates on Xmodem and then convert to B-Protocol estimates. Again, remember, these are ESTIMATES, and not guaranteed to be 100% accurate. They are a good guide, but whenever you do a download, time the blocks you receive by seeing how long it takes to get block #'s 10 thru 30. Divide that number by 20 and you will get your actual time per block. If it is significantly higher than the above times, abort the transfer and try again at another time when it won't take as long to download. Don't use the first 10 blocks to time your transfer rate. The terminal program has to not only open the disk file, it also has to do what is called "handshake" with CIS, this can add a few seconds to the first block transfered so your timing will not be as accurate. Don Curtis/SYSOP 76703,4321 Amiga Forum