This is an archive of CompuServe forum messages from 1985 to 1995, as saved in transcripts by John Foust.
Search Results (225 messages)
If you're jumping to location 4, your code is probably attempting to call a function pointer that has not been properly initialized or that has been trashed by another bug. The compiler won't generate a call to location 4. There are several possible causes for why your code works optimized.…
This is correct, except that the version number is 6.50. (We used Commodore's numbering scheme for shared libraries, in which the numbers on either side of the . are seperate integers, so 6.50 is "six fifty", not "six five oh".) Anyway, contact SAS Institute directly to get upgrades: SAS Institute…
SAS/C V6.0 and above has not sold 9000 copies. Close to that, but not there. And you are just plain wrong that Aztec C drove SAS/C development. That hasn't been true as long as I was working on it (Lattice V5.04 and after). It may have driven some of the…
SE will open on the default public screen. If you use a public screen manager utility, you should be able to get it to open on a different screen. –Doug
Hi Joe – Sorry I took so long to reply, I've been on vacation for a couple of weeks. I don't have the 6.55 patch stuff handy at the moment, so I can't say where the fix was supposed to have been made for SMFIND. However, the code is in…
Also, you could just use the #pragmas for these functions instead of relying on amiga.lib. To do this, make sure you #include where the "whatever" is the correct include file for the shared library. You probably already have an include for the , or at least you should; since includes…
Well, the problem with IEEEBase in particular is that tasks using it need to preserve floating point registers when system interrupts occur, so I think the library allocates some extra space in the library structure for them. If your subtask and your main task both use the same instance of…
…and well they should. I'll wager that both Borland and Microsoft have more people writing example code than we could afford for development, technical writing, testing, technical support, marketing, sales, warehouse staff, advertising, package design, proofreading, editing… and I'll wager their sales are 100 times what ours were, too. –Doug
Hi James – Yes, you can still get SAS/C V6.51 from SAS Institute. Email them for more info: saspubx@vm.sas.com ; or just call them (919)677-8000 and ask for Book Sales. –Doug
Well, we don't really have a product on MS-DOS or any other "reasonable" subsitute platform any more. Lattice C for DOS is pretty creaky. Most of our compiler work is for in-house use now… Of course, there are TWO platforms for which SAS Institute does still offer a development system.…
Hani – A couple of comments: SAS/C++ is *not* a port of cfront 2.1. It is a C++ translator developed from scratch in-house at SAS Institute. Even if SAS/C++ is not as efficient as SAS/C, that won't prove anything about the C++ *language* in general, just our implementation. In point…
I don't think that's a fair characterization. We notified people at least six months in advance that support was being dropped, and 9 months in advance that development was being dropped. We did drop our prices, and we were telling people that called for a long time what the situation…
ramlib is a special task in later versions of AmigaDOS that is responsible for loading shared libraries. If you're getting a crash in ramlib, you probably have trashed memory somehow/somewhere. Are you running Enforcer? –Doug
The math coprocessor has to be set up by your startup code. Chances are, when you run as a process your compiler system's startup code is setting it up correctly. When you're running as a task, your startup code probably isn't getting executed, so you need to duplicate it yourself.…
Hi Joe – Your unresolved symbol error comes from an unfortunate interaction between one of the SAS/C C header files and iostream.h. The C header file has the following #define: #define write __write The reason for this is that ANSI required us to rename the UNIX compatibility function "write" to…
I agree with Ben that C++ does offer a lot of hidden cost, and at first I didn't really like the language because of that. After getting used to it, there are features of C++ that don't invoke much, if any, extra cost at run-time and yet do improve the…
Hi Shraddhan – When using static initialization on an array of unions, treat it like you were initializing the first element of the union. There is no way in C to statically initialize elements other than the first. Also note that what you are doing with the union is technically…
Thanks – glad I could be of help. I don't know what books you are using, but string concatenation was an extension added by the ANSI committee and wasn't present in K&R. If you're using older books, it might not be mentioned (or maybe they were just too lazy to…
This is correct. Technical support has been terminated for the SAS/C Development System for AmigaDOS (as of 12/23/94). We announced this in September on the net. Development was halted last summer, and this was also announced on the net. I regret that this decision was necessary, but the business case…
Well, I've read lots of answers to this question about the string constant, but there is one relatively easy solution that the ANSI committee suggests that works real well: #define WHATEVER "\x9b" "0 p" The ANSI standard says that adjacent string constants are concatenated by the tokenizer. Next best, but…
The last word on SAS/C and SAS/C++ memory usage: The MEMORYSIZE option will help if you're compiling C code, but the C++ translator doesn't honor it, unfortunately. The C++ translator DOES use T: for the intermediate C source file, so you can save memory by assigning T: to the hard…
No, you can actually truncate. Open the file with the fopen() function and give an open mode of "r+", use fseek() to seek to the position you want to truncate the file at, then fclose() the file. –Doug
If you don't want to rename your file, use the CXXSRC option on the SC command to force SC to treat your file as a C++ source file. If you don't tell it explicitly what file type a given file is, SC makes its best guess. You can use the…
If the array is global, why not simply declare it "static" or move the declaration external to any function? If you do that, the array won't be a local variable, so it won't take up stack space. BTW, SAS/C and I think DICE both provide stack CHECKING code. In SAS/C,…
Alex, It looks like you have a really huge file, or that you are linking in a LOT of code from a library somewhere. You need the CODE=FAR option on V6 or the -b0 option on V5. When you use these options, you'll need to make sure to link with…
Hi Alex – You declare the variable "extern", but do you ever DEFINE the variable? If you don't, that would explain why it's coming up undefined. You need to have it in at least one file without the "extern" keyword. In that file, you'll need to have a number inside…
Hi Ron – SAS/C provides a getch() function, but not a kbhit() function. Since the Amiga input.device handles all input, there is no way to really tell if/when the user actually hit a key, but really you shouldn't need to know that; all you really want to know is whether…
The "brute force" technique that you describe is unnecessarily brutish, even if you can't get findhit to work. Here's the cookbook approach to finding enforcer hits by hand: 1. Compile with DEBUG=LINE, NOOPT (default) and create a map file with MAP, MAPHUNK, MAPXREF. 2. Obtain the segment number and offset…
I think the Rom Kernel Manuals discuss IFF. Read about the iffparse library provided with the system. –Doug
Tom, There is a limit on the number of open files in older versions of the Lattice compiler, but I'm not sure what it is. Lattice version 5 and higher should be unlimited, and SAS/C version 6 is definitely unlimited. –Doug
Hi David – To elaborate on Steve's answer (which is totally correct, even the part about upgrading compilers 8^) the Amiga OS caches certain types of data for future reference. This data includes disk-based shared libraries, fonts, and a few other resources. If the system starts to run low, the…
Ask John Toebes about the original Blink linker written by the Software Distillery. We got together on Friday of Memorial Day weekend (end of May, for you non-US people) and John said we could finish it by the end of the weekend… we shipped it Labor day weekend of the…
Sorry, there's no way to detect that the other computer is down from parnet.device, so parnet doesn't support it.
I have "Algorithms in C", John, and I just threw away an Addison-Wesley Book Express junk mailing today that was advertising the C++ version. It contains pattern-matching algorithms, simple hashing algorithms, search & sort stuff, compression algorithms, etc. but nothing earth-shattering. It's a great first-course book. We used the Pascal…
Hi Gerald, I don't know the answer to your smake question; I suggest contacting technical support via EMITS (see Chapter 3 of your User's Guide, Volume I). To free up more memory for C++, assign T: to your hard disk somewhere. C++ uses T: for the intermediate ..c file, which…
If you're talking about the MKMK utility, you can optionally specify the list of files to be linked into the executable. The default is "all C and C++ source files in the directory", but you can change that. Of course, you'd end up with a different makefile for each project,…
Me, too. Glad this was resolved in my absence. –Doug
James, Unfortunately, I can't answer this question, since I don't know enough about SE. (Even though I use it all the time!) Please contact technical support as described in Chapter 3 of your User's Guide, Volume I and they will be able to find the answer. You can get to…
Steve, The correct version is 6, the revision is 50 – i.e. 6.50, not 6.0. 6.50 does include C++, and it is compliant with the ANSI C++ working paper as of about six months or so ago, when we froze, except for templates and exception handling. Thus, it really is…
Robert, Call (919)677-8000 and ask for Book Sales. If you have your registration number, give it to them; otherwise, they will look you up by name/address. –Doug
I suspect zip code has a lot more to do with it than alphabetical order. We use a mail house that does "trickle" letters out over a period of a week or more. I don't know what system they use that makes it work that way, but it does. I…
OK, thanks. That's good to know. –Doug
I'm not sure, but the existing parnet may have problems with AmigaDOS 3.0. It definately has problems with 3.1. Has anybody gotten it to work at all with AmigaDOS 3.0? –Doug
Hi all, There is some misinformation floating around here, and some good information. Joe Hanson is basically correct about everything it was possible for him to be correct about: 1. The version number is 6.50 (version 6 revision 50) not 6.5 2. The upgrade from V6.x costs $69 (US only;…
Kelly, Yes, I've found it's better to dump all info that I have rather than answer just the question asked. It cuts down on mail traffic later 8^). BTW, the release number is 6.50, not 6.5. Pronounce it like "six-fifty", not "six point five". It's Version 6 Release 50. –Doug
Kelly, It's taking a looong time at the printer. We shipped the diskettes at the end of September. Upgrade letters are going to the mail house tomorrow. They will probably arrive in 7-10 days since the mail house sometimes takes a while to get them in the mail. We will…
Troy, I believe that Vic has already answered your second question, about the CLI behavior. As to the workbench behavior, I unfortunately don't have a copy of 6.3 here at home, but under both 6.0 and 6.50 it works as expected – you do have to click the close gadget…
James, getch() is documented in the SAS/C Version 6 manual. There was no equivalent function in Version 5. Also, look at rawcon() in the V6 manual. conio.h is a PC-ism – it's not portable (for that matter, neither is getch()). You get access to getch() simply by including with SAS/C.…
James, getch() is documented in the SAS/C Version 6 manual. There was no equivalent function in Version 5. Also, look at rawcon() in the V6 manual. conio.h is a PC-ism – it's not portable (for that matter, neither is getch()). You get access to getch() simply by including with SAS/C.…
Hi Nevil, Since you're compiling with no startup code, you must make sure that SysBase is set up correctly. You need to add this: struct ExecBase *SysBase; void main(void) { … SysBase = *(struct ExecBase **)4; … } I assume you are defining __USE_SYSBASE or causing the libcall pragmas to…
Page 1 of 5