#: 3206 S10/Tandy CoCo 30-Apr-90 23:42:34 Sb: #3194-C arrays Fm: Bruce MacKenzie 71725,376 To: Mark Griffith 76070,41 (X) But Mark, the use of a declaration such as: func(array) int array[][6]; is standard. I don't have K&R, but it's clearly stated in Gehani's "C: Food For The Educated Palate" (Gehani's with Bell Labs and states in the preface that he follows the C Programming Language Reference Manual). It is understood that what is passed is a pointer to the array and that the array is not copied as are normal variables. The brackets and the second dimension tell the compiler the pointer points to a 2D array and is partioned in six column rows. The COCO compiler accepts this declaration but due to a bug uses the wrong dimension to partion the array, ie the first rather than the second. By the by, I checked out your more complex declaration ie: int (*array)[6]; and it compiles just fine on the COCO compiler. You are to be thanked for pointing out what I think is the best way to program around the bug. #: 3216 S10/Tandy CoCo 01-May-90 22:16:53 Sb: #3173-#C arrays Fm: Bill Dickhaus 70325,523 To: Mark Griffith 76070,41 (X) Mark, Since you seem to have all the answers , how do I define a ointer to an array of pointers with a variable number of elements? I have a situation where I want to define an array of pointers to strings, but I don't know in advance how many strings I need to point to. I want to be able to malloc() the array of pointers, and then use a pointer to get to each element. I know how to define a variable array of integers, and a pointer to a fixed array of pointers to characters (which is how I've got it working now, just defining a large array) but haven't found any examples of how to define a pointer to an (undefined) array of pointers. Bill There are 2 Replies. #: 3227 S10/Tandy CoCo 02-May-90 17:07:45 Sb: #3216-C arrays Fm: Pete Lyall 76703,4230 To: Bill Dickhaus 70325,523 Bill - This may appear overly simple, but have you considered using a NULL string as the nth entry to indicate the end of the array(s)? Make that a NULL pointer. Pete #: 3230 S10/Tandy CoCo 02-May-90 18:43:35 Sb: #3216-C arrays Fm: Bruce MacKenzie 71725,376 To: Bill Dickhaus 70325,523 Bill, This will do what you want: char **sp; /* declare a pointer to a character pointer */ sp=calloc(MAX,sizeof(char *)); /* assign it to the base of a block of memory to hold the pointer array */ sp[0]="string 1"; sp[1]="string 2"; /* now you can use your pointer as an array */ In C array variables are pointers to the base address of the array memory, and any pointer may be used as an array variable so long as you assure that it points to a free block of memory of the appropriate size. #: 3207 S10/Tandy CoCo 01-May-90 08:53:54 Sb: #3201-#tsmon HELP! Fm: Pete Lyall 76703,4230 To: Paul Rinear 73757,1413 (X) Paul - Dropping characters is a classic symptom... do you have the IRQ hack installed? Do you have an upgraded multipak? Pete There is 1 Reply. #: 3210 S10/Tandy CoCo 01-May-90 17:42:59 Sb: #3207-#tsmon HELP! Fm: Paul Rinear 73757,1413 To: Pete Lyall 76703,4230 (X) The multipak is upgraded and the diode IRQ hack was done. Something I've always been curious about: I use a Disto RS-232 Superpack in slot2 as /T2. The instructions that came with this pack contained a modpatch for AciaPak that I've tried using. It has never made any difference in operations. So I don't use it. Do you know what the story is with that? To quote them; "If you are using a COCO3, the Aciapak driver can inadvertently turn off the interrupts via the GIME chip. A fix using modpatch will prevent this". They then give the patch. Doesn't seem to do anything. ???? Paul There are 2 Replies. #: 3211 S10/Tandy CoCo 01-May-90 17:46:36 Sb: #3210-tsmon HELP! Fm: Kevin Darling (UG Pres) 76703,4227 To: Paul Rinear 73757,1413 (X) Paul - the patch is a common one to ACIAPAK. If you use one of its serial ports, and then cease using it (so that say, /t2 deinizes), then ACIAPAK normally shuts off interrupts from the MPI. For the interrupt-driven SC-II (or any other interrupt-driven device out there on the MPI), this would be catastrophic. I guess they must have included the patch "just in case" . - kev #: 3212 S10/Tandy CoCo 01-May-90 18:05:59 Sb: #3210-#tsmon HELP! Fm: Pete Lyall 76703,4230 To: Paul Rinear 73757,1413 (X) Paul - I have heard of mixed results using the diode version of the hack. The straight IRQ hack is simplest, and works well. Also, it is slot insensitive. BTW - any particular reason you're not using slot 1 (the recommended slot)? Pete There is 1 Reply. #: 3222 S10/Tandy CoCo 02-May-90 12:35:47 Sb: #3212-#tsmon HELP! Fm: Paul Rinear 73757,1413 To: Pete Lyall 76703,4230 (X) I don't know what the "straight interrupt hack is". What I did was connect all the slots together on one pin (pin 8 if I remember-it's been awhile) and then do that diode thing. Haven't had any problems. Paul There is 1 Reply. #: 3226 S10/Tandy CoCo 02-May-90 17:04:12 Sb: #3222-tsmon HELP! Fm: Pete Lyall 76703,4230 To: Paul Rinear 73757,1413 (X) Paul - The straight interrupt hack is under IRQHAK.TXT in DL2 (or DL10), I believe. Pete #: 3218 S10/Tandy CoCo 02-May-90 00:02:47 Sb: #3197-#tsmon HELP! Fm: Everett Chimbidis 76370,1366 To: Lee Veal 74726,1752 Can't find the dev pack (or login) in any store! No longer availble! There is 1 Reply. #: 3223 S10/Tandy CoCo 02-May-90 13:38:36 Sb: #3218-tsmon HELP! Fm: Shawn Thomas 72300,2066 To: Everett Chimbidis 76370,1366 Everett- The Dev Pack may be a special order item only. Check around. #: 3213 S10/Tandy CoCo 01-May-90 20:52:55 Sb: #Home Publisher help Fm: Bruce Isted (UG VP) 76625,2273 To: All Hi all, I've had a request from a local CoCo club member for a fixed printer driver for Home Publisher and a DMP-110 printer. Does anyone know where I can get such a thing? The problem is apparently due to the DMP-110's horizontal dots-per-inch, which is denser than most DMP printers. I'm told that circles print up as ovals (squished in sides), and so forth. Any help is greatly appreciated! Bruce There is 1 Reply. #: 3224 S10/Tandy CoCo 02-May-90 13:39:59 Sb: #3213-Home Publisher help Fm: Shawn Thomas 72300,2066 To: Bruce Isted (UG VP) 76625,2273 (X) Bruce- Tandy is selling a disk of printer drivers thru special order for the Home Publisher. You might check to see if the disk includes on for the dmp-110. Shawn #: 3219 S10/Tandy CoCo 02-May-90 00:06:00 Sb: t3 help Fm: Everett Chimbidis 76370,1366 To: all Nedd to know how to use /t3 with my second computer. I have 2 232 ports 1 for each computer. how do I try on into the other? 1St one has the harddrives 2nd dosn't. Any HELP? #: 3233 S10/Tandy CoCo 03-May-90 02:09:13 Sb: #3173-#C arrays Fm: Bob van der Poel 76510,2203 To: Mark Griffith 76070,41 (X) Mark, thanks for the work-around. Using (*foo)[6] instead of foo[12][6] makes just about as much sense as anything else does right now in 'C' . Actually, I am starting to understand things. I decided that it really was time to learn this must talked about language...and the only way to do it is to write something fairly non-trivial. Oh, and I don't want to flog this horse too much, but according to K&R my original way SHOULD work. See page 105... f(day_tab) int day_tab[2][13]; or int day_tab[][13]; or int (*day_tab)[13]; BUGS: Yes, it is so often true that what is thought of as a bug is really a problem with the user. Heck, I've even spent hours looking over the source code for my OWN programs looking for what I thought was a bug, only to find that I was using the wrong command! However, you mentioned that there are a couple of documented bugs which can be worked around. Care to let us know what they are...But I am glad to hear that the MW complier is 'solid'. Guess I know where to look when I get errors! Also, I read that you are combining the MW stdio docs and Carl's into one document. GREAT!!!!! When do you think it will be done? And, does anyone have a good reason why 'C' doesn't pass an argument count to functions (like Basic09)...too late now, but I don't see that it would create that much more overhead, etc. Oh well... There are 4 Replies. #: 3237 S10/Tandy CoCo 03-May-90 06:20:29 Sb: #3233-#C arrays Fm: Mark Griffith 76070,41 To: Bob van der Poel 76510,2203 (X) Bob, Let's flog the horse once more: Your initial code had the array delcaration in the function as: int foo[20][6]; which will not work. The compiler does just what you told it to do, point to an array of pointers, each pointer of size 2 and 20, so you got 40 memory locations between each element in the array. int foo[2][6]; will work since you are now telling the compiler the actual size of the column element in the array, i.e. 2 bytes (the same as an int pointer). int foo[][6]; SHOULD work, I didn't try it. Come to think some more, it probably doesn't work since out compiler is not real smart when it comes to things like this. We need to tell it what the array looks like. The very best method is: int (*foo)[6]; since this is portable across any machine, even those with different size int's. Mark There are 2 Replies. #: 3244 S10/Tandy CoCo 03-May-90 16:36:14 Sb: #3237-#C arrays Fm: Kevin Darling (UG Pres) 76703,4227 To: Mark Griffith 76070,41 (X) Ummm... y'all are over my head in most of this, but I don't buy that int foo[2][6] to show that it's got "2 bytes" each etc. That's what the "int" is for. Anyway, do some compiles to asm, and you'll see that something just ain't right here. I think. ;-) kev There is 1 Reply. #: 3253 S10/Tandy CoCo 03-May-90 21:04:44 Sb: #3244-#C arrays Fm: James Jones 76257,562 To: Kevin Darling (UG Pres) 76703,4227 (X) int foo[2][6] is a declaration that says foo is a two-dimensional array with two rows and six columns. Multi-dimensional arrays are darned near never used in C, largely because C forbids anything but constants as array bounds, so that it's highly obnoxious to write, say, routines to solve systems of linear equations in C. One winds up faking it out and doing explicit offset calculations for a one-dimensional array a lot of the time. I don't even remember offhand whether C uses row or column-major order. There is 1 Reply. #: 3259 S10/Tandy CoCo 03-May-90 23:00:33 Sb: #3253-#C arrays Fm: Jeff Dege 76426,211 To: James Jones 76257,562 (X) "int foo[2][6];" is a declaration that says foo is a pointer to an array of 6 ints. If this is a variable declaration, it is a constant pointing at an area of memory large enough to hold two such arrays. If it is a parameter declaration, it isn't pointing at anything in particular, and no memory is allocated. C doesn't support multi-dimensional arrays, it supports arrays of arrays, which isn't the quite the same thing. Given "int foo[2][3];", foo[1] is an array of three ints, stored consecutively ( that is *foo[1] == foo[1][0], *foo[1]+1 == foo[1][1]), so obviously it is in column-major order. There is 1 Reply. #: 3268 S10/Tandy CoCo 04-May-90 09:31:56 Sb: #3259-#C arrays Fm: Pete Lyall 76703,4230 To: Jeff Dege 76426,211 (X) I beg to differ..... int foo[2][6] does NOT declare an array of 6 ints... In 6809/os9 (as in PDP-11 C), the int is a two byte entity. If you were to declare 'int foo[6]', THAT would be an array of 6 ints, and 'foo', by C convention, would be a pointer to the 0th element of that array. The allocation of two bytes for each element off the array is implicitly handled by the compiler, which will internally do the equivalent of 'sizeof (int)' when staging the array. In the case you specify (foo[2][6]), that will generate an array of 12 ints (24 bytes), or if conceptually easier to digest, 2 rows of 6 ints each. Pete There is 1 Reply. #: 3270 S10/Tandy CoCo 04-May-90 12:45:04 Sb: #3268-#C arrays Fm: Jeff Dege 76426,211 To: Pete Lyall 76703,4230 (X) I said a "int foo[2][6];" declared a POINTER to an array of 6 ints. "int foo[6];" declares a pointer to an int (it isn't a convention, it is the truth. Array notation is a convenient substitute for pointer arithmentic, no more.) Whether there is any memory allocated depends upon whether this is a variable or a parameter declaration. If "int foo[2][6];" is a variable declaration, foo becomes a pointer to an array of 6 ints, initialized to a memory area large enough to hold two such arrays. Since pointer arithmetic is scaled by the size of the base type, *foo is the first array of 6 ints, *foo+1 is the second array of 6 ints. **foo points to the first int in the first array, and **foo+1 points the the second int in the first array. &foo, foo, and *foo have the same VALUE, but different type. Assuming that an int is two bytes, and the base address of foo is 0x100, &foo+1 = 0x124, foo+1 = 0x12, and *foo+1 = 0x102 (**foo+1 is an int, not a pointer ;). If you add in the fact that a VARIABLE array is an r-value, and can't be changed, while a parameter array declaration is a pointer, and has no such limitation, you have a complete understanding of how arrays work in C. In any case, the whole system is designed so that you don't HAVE to be aware of how arrays equate to pointers in order for them to work. You don't HAVE to understand why X[5] == 5[X]. You can use arrays just like you would in Pascal, subject to the limitations that indices always start at 0, and arrays are always passed by reference. I always worry that these discussions will completely confuse the newcomers There is 1 Reply. #: 3289 S10/Tandy CoCo 05-May-90 13:17:22 Sb: #3270-#C arrays Fm: Pete Lyall 76703,4230 To: Jeff Dege 76426,211 (X) I'm leaving town a bit later today, but if I wasn't, I'd make an attempt to rebut that.... int foo[6] creates foo such that it is a pointer to the base of an array that will hold 6 ints. The declaration 'int foo[6][2]' creates an array (assuming data definition vice function declaration), or more properly a base pointer to an array that is 6 x 2 (or simply observed, 12 elements of 'sizeof int' long). Agreed that foo[6][2] and foo[12] create the same sized data space, and using the same internal geometry. Pete There is 1 Reply. #: 3297 S10/Tandy CoCo 05-May-90 16:07:27 Sb: #3289-C arrays Fm: Bruce MacKenzie 71725,376 To: Pete Lyall 76703,4230 (X) Pete, I must come in on Jeff's side in this debate. An array declaration such as, char array[4][12], sets up a pointer, array, which points to the bases of an area of memory large enough for four data objects of length 12 rather than to 48 data objects of length 1. The distinction seems trivial but it is not. Now the variable, array, and &array[0][0] are numerically equal, they both point to the base of the array. However, since when arithmetic is performed on pointers the size of the object pointed to is automatically factored in, the two are not equivalent. The expression (array+1) evaluates as a pointer to element array[1][0], while the expression (&array[0][0]+1) evaluates as a pointer to element array[0][1]. #: 3250 S10/Tandy CoCo 03-May-90 20:36:04 Sb: #3237-C arrays Fm: Jeff Dege 76426,211 To: Mark Griffith 76070,41 (X) Bull! From K&R 2, p. 112, (where his previous example used a [2][13] array): If a two-dimensional array is to be passed to a function, the parameters declaration in the function must include the number of columns; the number of rows is irrelevent, since what is passed is, as before, a pointer to an array of rows, where each row is an array of 13 ints. In this particular case, it is a pointer to objects that are arrays of 13 ints. Thus if the array daytab (his example) is to be passed to a function f, the declaration of f would be f(int daytab[2][13]) { ... } It could also be f(int daytab[][13]) { ... } since the number of rows is irrelevent, or it could be f(int (*daytab)[13]) { ... } which says that the parameter is a pointer to an array of 13 integers. The parentheses are necessary since brackets [] have higher precedence than a *. Without parentheses, the declaration int *daytab[13] is an array of 13 pointers to integers. More generally, only the first dimension (subscript) is free; all the others have to be specified. (END OF QUOTE) As you see, the first dimension is not required, and is ignored if supplied, but it is NOT incorrect, nor should it change the behavior of the function. When the compiler sees "int foo[20][6]" AS A PARAMETER, it should treat it as a pointer to a 6 element array of ints. If it doesn't, it is broken. #: 3238 S10/Tandy CoCo 03-May-90 06:21:15 Sb: #3233-#C arrays Fm: James Jones 76257,562 To: Bob van der Poel 76510,2203 (X) Why doesn't C pass an argument count? Well...unless it passed even more info, it's not clear that it would do much good. VAX C has or maybe had something that was mislabeled as giving the number of arguments, but actually told you the number of words or longwords pushed as arguments! There is 1 Reply. #: 3245 S10/Tandy CoCo 03-May-90 16:37:31 Sb: #3238-#C arrays Fm: Kevin Darling (UG Pres) 76703,4227 To: James Jones 76257,562 (X) Doesn't ANSI C allow passing variable argument counts, tho? There is 1 Reply. #: 3254 S10/Tandy CoCo 03-May-90 21:08:54 Sb: #3245-C arrays Fm: James Jones 76257,562 To: Kevin Darling (UG Pres) 76703,4227 (X) Yes, but that's not the same thing. If you look at the fine print on varargs.h, or whatever it is, you'll see that the programmer is expected to be able to claim to know the type he wants to pretend the "next" argument passed is, so that the compiler need not generate code that actually indicates anything about the number, type, or size of actual parameters. (Nothing in the standard prohibits it, but I doubt that one will find anything save the better C interpreters that actually do.) The intent of va_arglist et al. is that there be some extralinguistic way to think one knows what the types of the arguments are, e.g. by scanning a printf() format string. #: 3353 S10/Tandy CoCo 07-May-90 20:39:38 Sb: #3233-C arrays Fm: David Jacques 71650,1321 To: Bob van der Poel 76510,2203 (X) uh fellas there are document errors in the multiview docs of specifically that comes to mind is comes to mind is _gs_scsiz on page 10-50 it should be _gs_scsz and on 10-35 they forgot to mention that ya should pass the x,y when ya want to plot a point so while things seem to be pretty solid I'd suggest a rdump of the library to keep you from losing your mind when you try to hack in the grafx lib exit #: 3413 S10/Tandy CoCo 11-May-90 01:06:50 Sb: #3233-#C arrays Fm: Bob van der Poel 76510,2203 To: Bob van der Poel 76510,2203 Well, seems I really created a montster with my innocent question about passing arrays. I just finished reading most of the thread and Bruce Mackenzie's and Mark Griffith's files. Not being a "C guru" I readily admit that much of the discussion is above me. But since I started this most interesting thread, let me add a few comments... 1. After asking the question I decided that using a structure would serve my purpose much better. 2. Thanks to all who participated. I've not seen such a lively debate, nor so much real meaty information on this forum for a long time. 3. Jeff's detailed discussion of semantics is something I have printed out and putting in a folder. If one decided to use pointers and arrays interchangeably it is very important. But, I'm not sure how clever one would be to do tricks like that. Not only do you confuse yourself at the time, but what happens a year from now when you try to remember what you did? Let's face it, the reason for using a multi-dimed array is to make things clearer for the programmer in the first place. From an economy of code & execution time it is always faster to maintain your own data structures. 4. I certainly have a lot more respect for complier writers. Lots of details to keep track of. (cont) There is 1 Reply. #: 3414 S10/Tandy CoCo 11-May-90 01:07:43 Sb: #3413-#C arrays Fm: Bob van der Poel 76510,2203 To: Bob van der Poel 76510,2203 (cont) 5. Certainly no reason to defend the fellows we just said the nice thing about. Despite Mark's comments, there is a bug in the complier when it comes to passing multi-dimed arrays to functions. Yes, there is a simple work-around--and there is no shame in that. But let's not get too defensive stating the "there is no bug" argument. The bottom line is that K&R state 4 methods to pass a multi-dimed array to a function and with the MW complier only 1 of these works. I agree with Mark that this method is probably the best since it clearly shows the relationship between pointers and arrays, but from a strict programming viewpoint it is NOT the clearest. 6. Bruce's comments on the problem using arrays of more than 2 dimensions are, again, something very important. I don't ever recall using one; my little mind has trouble enough with 2-dimed arrays...let alone 3 or 4! Again, Bruce has shown an elegant workaround. 7. Just how many versions of the CGFX library are there? I just read a bit about a bug in _ss_mgpb() in Puckett's July/89 column (pg. 141). However, a rdump of my package fails to show the routine. Also, my version has "BlnkOn" instead of "BlnkOn". Is there an update? How does one get it? 8. Speaking of the cgfx library: Should one use the text commands like Clear(), CurXY(), etc. in an actual program, or would it be better to have a call to cls(), and gotxy() in the program and have these in turn call the library routines. Guess I'm wondering which method would be more protable, etc. Which method do you fellows use? 9. How about someone compliling all the know bugs (or perhaps we should call them "undocumented features" so that no one's feelings get hurt?) and posting them? Yeah, I know . . . time, time, time. Okay, that's about it for now. Maybe next week I can come up with another "innocent question." There are 3 Replies. #: 3416 S10/Tandy CoCo 11-May-90 01:48:40 Sb: #3414-C arrays Fm: Kevin Darling (UG Pres) 76703,4227 To: Bob van der Poel 76510,2203 Bob - it sure looks wrong to me. Here is a program and a function, and their resulting asm code outputs compared. main() foo(stuff) { char array[4][80]; char stuff[][80]; array[0][0] = 10; { stuff[0][0] = 10; array[1][5] = 20; stuff[1][5] = 20; array[2][50]= 30; stuff[2][50] = 30; foo(array); } } * main() * foo(stuff) * char array[4][80]; * char stuff[][80]; leas -320,s pshs u * array[0][0] = 10; * stuff[0][0] = 10; ldd #10 ldd #10 stb 0,s stb [4,s] <== OK * array[1][5] = 20; * stuff[1][5] = 20; ldd #20 ldd #20 * ldx 4,s stb 85,s stb 5,x <== ??! * array[2][50]= 30; * stuff[2][50] = 30; ldd #30 ldd #30 * ldx 4,s stb 210,s stb 50,x <== ??! * foo(array); * } leax 0,s puls u,pc pshs x lbsr foo ********** OTOH, many C people have told me that this is not a common method of working with stuff, and to simply use other ways. Okay, I guess . #: 3417 S10/Tandy CoCo 11-May-90 11:39:36 Sb: #3414-C arrays Fm: Jeff Dege 76426,211 To: Bob van der Poel 76510,2203 There is a very interesting article in the May 1990 issue of "The C Users Journal" on exactly this subject (it's the issue with "The REAL Obfuscated Code Contest" ;) Page 25, "Dr. C's Pointers - Pointers To Arrays", by Rex Jaeschke. And NO, I didn't see the article until after my post. Like most things in C, it wasn't until I got bitten hard that I figured this stuff out. I was writing some matrix routines for a graphics class, and it took me quite a while to figure out why things weren't happening the way I had thought they would. The most common reason for mixing pointer and array notation is so that you can use dynamically allocated arrays. Something like this: int (*foo)[10]; foo = (*)[10] malloc(20*sizeof(*foo)); /* foo is now a 20x10 array */ If you are looking for another "innocent" question, start asking about mixing signed and unsigned chars and ints in expressions. Things can get VERY hairy there. I've never really dug into the area (I never mix signed and unsigned, and I never use lone chars), so I can't explain all the details on it, but you can be sure to generate an argument... #: 3419 S10/Tandy CoCo 11-May-90 17:36:51 Sb: #3414-#C arrays Fm: Bruce MacKenzie 71725,376 To: Bob van der Poel 76510,2203 Good idea about a file describing the errors in cgfx.l. Here's what I've got: 1. GPLoad() requires an additional parameter, a pointer to the data to be loaded into the buffer. 2. BlnkOff appears as BlknOff in the library. 3. Point() requires two additional parameters, an X and a Y coordinate. 4. -gs-scsiz appears as -gs-scsz in the library. 5. -ss-mgpb appears as -gs-mgpb in the library and doesn't work anyway. 6. -ss-umbar appears as -ss-ubar in the library. 7. -gs-opt was left out of the library. If anybody has anything to add to this list leave me a message and I'll put everything together into a file for the LIB in a week or so. There is 1 Reply. #: 3421 S10/Tandy CoCo 11-May-90 20:09:10 Sb: #3419-C arrays Fm: Zack Sessions 76407,1524 To: Bruce MacKenzie 71725,376 (X) Here's more: 1. Font - Documentation incorrectly states that the group font is GRP_FNT when it is really GRP_FONT. 2. Erline - Is really ErLine (which it should be, docs wrong again) 3. DelLine - Is really DelLin Any more? #: 3271 S10/Tandy CoCo 04-May-90 13:09:12 Sb: #3175-#C arrays Fm: Jeff Dege 76426,211 To: Pete Lyall 76703,4230 (X) > (BTW, foo == &foo[0][0])... Wrong! foo == &foo[0]. If foo was equal to the address of the first int, foo+1 would point to the second int. foo+1 points to the second array. There is 1 Reply. #: 3290 S10/Tandy CoCo 05-May-90 13:28:31 Sb: #3271-#C arrays Fm: Pete Lyall 76703,4230 To: Jeff Dege 76426,211 (X) Ummm... you may (read: OUGHT to) check your facts... compile the following program (I did): #include main() { int foo[6][2]; printf("foo: %04x\n", foo); printf("&foo[0][0]: %04x\n", &foo[0][0]); } You'll find that foo == &foo[0][0]. Since you have already conceded that foo = &foo[0], that sort of blows your rebuttal, wouldn't you agree? Again... I'm out of town for 10 days starting later today, so don't construe a non-response as an agreement. Pete rep There is 1 Reply. #: 3331 S10/Tandy CoCo 06-May-90 20:50:17 Sb: #3290-C arrays Fm: Jeff Dege 76426,211 To: Pete Lyall 76703,4230 Try THIS to see what I mean: main() { int foo[6][2]; printf("foo+1 = %x\n", foo); printf("&(foo[0][0])+1 = %x\n", &(foo[0][0])+1); } I never meant to imply that they had different numeric values, only that they had different base types (that is, foo is a pointer to an array of integers, while &(foo[0][0]) is a pointer to an integer.) #: 3273 S10/Tandy CoCo 04-May-90 13:10:19 Sb: #3194-C arrays Fm: Jeff Dege 76426,211 To: Mark Griffith 76070,41 (X) It is a bug. #: 3274 S10/Tandy CoCo 04-May-90 13:12:43 Sb: #3163-#C arrays Fm: Jeff Dege 76426,211 To: Pete Lyall 76703,4230 (X) When you pass 'my_array' to the function, you are _not_ passing an array of ints, 6x2, but you aren't passing a pointer to the array, either. You are passing a pointer to the base type of the array, in this case a pointer to an array of ints [2]. There is 1 Reply. #: 3291 S10/Tandy CoCo 05-May-90 13:35:08 Sb: #3274-#C arrays Fm: Pete Lyall 76703,4230 To: Jeff Dege 76426,211 (X) "A pointer to the base type of the array"... excuse me? Which C lingo are you speaking? Try this: .... int *ptr, woof[6][2]; ..... ptr = woof; function(woof, ptr); Now - when you get down to 'function()', are you telling me that woof != ptr ? Are you telling me that they both don't point to ints? Just for clarification: the majority of the C work done in this forum is on the 6809 MW C Compiler, which is K&R based (almost to a fault), and limited. If you're thinking about any ANSIfications, they simply just don't apply here (unless you're talking about the later versions of the 68k flavors of the compiler). Pete There is 1 Reply. #: 3320 S10/Tandy CoCo 06-May-90 20:11:13 Sb: #3291-#C arrays Fm: Jeff Dege 76426,211 To: Pete Lyall 76703,4230 ][2]; Yes, I am. ptr != woof. They have the same value, but different types. I can see you don't understand the distinction I'm trying to make here. It's subtle, but it is VERY important if you are going to do any real work in C. I guess we'll just have to hope that this doesn't scroll off before you get back from your trip. (By the way, the following explanation applies to K&R just asmuch as it does to ANSI. There is only one minor clarification to array handling in standard C.) In order to understand how arrays work in C you have to understand that there really isn't any such thing. Arrays in C are more of a notational convenience than they are a true data type as they are in Ada or Pascal. Because of this I'm going to have to start with pointer arithmetic. You probably know this, but you obviously aren't keeping it mind when you work with arrays. C allows limited arithmetic operations on a pointer. You can add an int to a pointer to obtain another pointer of the same type, and you can subtract two pointers of the same type to get an int. When doing either you scale the int by the size of the base type, that is, the type of the object pointed to, ints, if we are dealing with (int *)s. Assuming we have: "int *x, *y;", where x has the value 100, y has the value 0x200, and sizeof(int) == 2. x+10 == 100 + 10*2, == 120, which is ten ints further along in memory. y-x = (200 - 100)/2 = 50, menaing that you can fit 50 ints between x and y. If we had a "char *p;", where p == 100, and sizeof(char) == 1; p+10 == 100 + 10*1 == 110 != x+10, even though x and p have the same value. They have different types, and so are handled differently. y-p is flat out illegal, because the compiler can't know which datatype is used to do the scaling. (cont.) ... pos There is 1 Reply. #: 3321 S10/Tandy CoCo 06-May-90 20:13:26 Sb: #3320-#C arrays Fm: Jeff Dege 76426,211 To: Jeff Dege 76426,211 (X) (cont.) ... An array in C is handled as a pointer plus offset. The array notation is a shorthand for pointer arithmetic expressions. A[5] translates to *(A+5). An array variable itself is a pointer to the first element. if we have a declaration "int A[20];", the expression "C = A[10]" translates to "C = *(A+10)". If A = 100, We end up with "C = *(100+5*sizeof(int))", so C is assigned the int value stored at location 120. If we have "char B[20];" where B = 300, the expression "D = B[10]" assigns to C the character stored at location 310. Array and pointer notation are completely equivalent. You can use either notation with a variable, regardless of whether you declared that variable as a pointer or as an array. Now, getting into multi-dimensional arrays. In C, there is no such thing. You cannot declare a two dimensional array of ints. What you can do is declare a one dimensional array of any type. If that type is a one dimensional array of ints, the result is quite similar to a two dimensional array, but it isn't identical. Suppose I need to work with a 10x20 array of ints. The declaration is "int foo[10][20];". Here, foo is declared as an array of 10 arrays of 20 ints. Since arrays are really pointers, foo is declared as a pointer to an array of 20 ints. This means that "foo[1]" == "*(foo+1)" == "*(foo + 1*sizeof(int [20]))" == "*(foo + 1*40)"; if "foo == 100", "foo[1] == 140", and has a type of pointer to int. "foo[1][5]" == *(*(foo+1) + 5" == "*(*(foo + 1*40) + 5*sizeof(int))" == "*(140 + 10)" = "*(150)", and has type int, so foo[1][5] is the int stored at 150. (cont.) ... There is 1 Reply. #: 3323 S10/Tandy CoCo 06-May-90 20:15:08 Sb: #3321-#C arrays Fm: Jeff Dege 76426,211 To: Jeff Dege 76426,211 (X) (cont.) ... As a more detailed example, suppose we have the following declaration: int foo[4][4] = { {0,1,2,3}, {4,5,6,7}, {8,9,10,11}, {12,13,14,15}}; Assuming foo == 0x100, and sizeof(int) == 2, we'll see the following in memory (Note that I'm using hexadecimal numbers here): location (+0x0100) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F data 00 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 location (+0x0110) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F data 00 08 00 09 00 A2 00 0B 00 0C 00 0D 00 0E 00 0F With this, we have the following situation: type sizeof(basetype) value *value ============================================================= &foo int [4][4] N/A 0x100 N/A foo int *[4] 8 0x100 0x100 *foo int * 2 0x100 0 foo[0] int * 2 0x100 0 foo+1 int *[4] 8 0x108 0x108 *(foo+1) int * 2 0x108 4 foo[1] int * 2 0x108 4 **foo int N/A 0 N/A foo[0][0] int N/A 0 N/A *foo+1 int * 2 0x102 1 *(*foo+1) int N/A 1 N/A foo[0][1] int N/A 1 N/A *(foo+1)+1 int * 2 0x10A 5 *(*(foo+1)+1) int N/A 5 N/A foo[1][1] int N/A 5 N/A *(foo+2)+3 int * 2 0x116 11 *(*(foo+2)+3) int N/A 11 N/A foo[2][3] int N/A 11 N/A (cont.) ... There is 1 Reply. #: 3325 S10/Tandy CoCo 06-May-90 20:17:27 Sb: #3323-#C arrays Fm: Jeff Dege 76426,211 To: Jeff Dege 76426,211 (X) (cont.) ... If you've been following this, you'll see why I've been insisting that a declaration of "int foo[20][6];" doesn't declare foo as a pointer to an int. It declares foo as a pointer to an array of six ints. This is essential in order to keep the pointer arithmetic straight. If you only work with arrays using array notation this won't bother you, but if you ever mix array and pointer notation, not keeping this in mind will cause you serious problems. Now, regarding array declarations. Declaring an array creates a pointer to the base type. "int x[10];" declares x as a pointer to an int, just as if you had declared "int *x;". This is true whether this is a variable declaration or a function parameter declaration. If this is a function parameter declaration, they are identical in every way. K&R is quite explicit about this. If this is a variable declaration, there are three differences between the array and the pointer declarations. First, if you declare x as an array, memory is allocated to hold 10 ints, and x is initiallized to the address of this area of memory, and is fixed there (i.e., an array variable is a constant address, and can't be changed.) Third, the sizeof operator handles array variables as a special case, and returns the total memory allocated for the array (in this case, 20), instead of the size of the variable (which is the size of a pointer.) An array declared as a function parameter, on the other hand, is handled as a plain pointer, under all circumstances. You can change the value of the parameter, and sizeof always returns the size of a pointer. This means that the number of elements in a parameter declaration is ignored. The following are identical declarations: foo (bar) int bar[20]; {...} foo (bar) int bar[10]; {...} foo (bar) int bar[]; {...} foo (bar) int *bar; {...} (cont.) ... There is 1 Reply. #: 3326 S10/Tandy CoCo 06-May-90 20:18:42 Sb: #3325-C arrays Fm: Jeff Dege 76426,211 To: Jeff Dege 76426,211 (X) (cont.) ... In the case of (pseudo)multi-dimensional arrays, you are actually declaring a pointer to the base type, where the base type is an array, so you have to completely sepcify the dimensions of the base type. The dimensions of the array itself are still ignored. The following are also identical: foo (bar) int bar[20][6]; {...} foo (bar) int bar[10][6]; {...} foo (bar) int bar[][6]; {...} foo (bar) int (*bar)[6]; {...} Now for the MW C compiler, if it doesn't handle all of the above declarations in exactly the same way it is broken. I wouldn't call it a major bug, as there is a simple and clear workaround that still results in portable code, but it is still a bug. p.s. - The only distinction I'm aware of between ANSI and non-ANSI C is in applying the & operator to an array. ANSI specifies that it returns the address of the array, rather than the adress of the first element. K&R didn't address this at all, and so it was handled and mishandled in a number of different ways by various compilers. Aside from that, all of the above applies fully to K&R C just as much as it applies to standard C. #: 3248 S10/Tandy CoCo 03-May-90 20:33:45 Sb: #3154-#C arrays Fm: Bruce MacKenzie 71725,376 To: Bob van der Poel 76510,2203 (X) Bill, I've been fooling around with multidimensional arrays on the COCO C compiler and I've found that the bug you encountered is just the tip of the iceburg. There are basic problems with the way our compiler handles multidimensional arrays that can surface in other contexts. I've uploaded a file to LIB 2 fully describing the bug. Anyone needing to use multidimensional arrays with the COCO C compiler should check out carray.ar in LIB 2 under my ppn. There is 1 Reply. #: 3251 S10/Tandy CoCo 03-May-90 20:49:20 Sb: #3248-C arrays Fm: Bruce MacKenzie 71725,376 To: Bruce MacKenzie 71725,376 (X) Woops, the file was uploaded to LIB 3 not LIB 2. Look for the array bug report, carray.ar, in LIB 3. #: 3345 S10/Tandy CoCo 07-May-90 18:40:08 Sb: #3230-#C arrays Fm: Bill Dickhaus 70325,523 To: Bruce MacKenzie 71725,376 (X) Thanks, Bruce, that's just what I needed! I didn't realize that I could use sp[1], etc. without first defining sp as an array. Bill There is 1 Reply. #: 3355 S10/Tandy CoCo 07-May-90 21:19:24 Sb: #3345-#C arrays Fm: Bruce MacKenzie 71725,376 To: Bill Dickhaus 70325,523 (X) Yeah Bill, I did a lot of programing in C myself before I learned that lesson. Makes a lot of things much easier once you see it. Just remember that there's really no difference between arrays and pointers. Or rather, array notation is nothing more that a particular type of pointer notation. There is 1 Reply. #: 3398 S10/Tandy CoCo 10-May-90 17:16:25 Sb: #3355-#C arrays Fm: Bill Dickhaus 70325,523 To: Bruce MacKenzie 71725,376 (X) This ongoing argument about how C handles so called multi-dimensional arrays has really taught me a lot about pointers and "arrays" in C. Its all finally starting to make some sense. With the heavy assembler background I have, I don't have any problem understanding the concept of pointers, but I have a lot of trouble with the definition of pointers and syntax of statements that use pointers in C. Bill There is 1 Reply. #: 3407 S10/Tandy CoCo 10-May-90 20:55:53 Sb: #3398-C arrays Fm: Bruce MacKenzie 71725,376 To: Bill Dickhaus 70325,523 (X) Bill, Truly, some of this stuff is not simple and it can set your head to spinning. I have found "ADVANCED C: Food for the Educated Palate" by Narain Gehani very helpful. He combines a tutorial style with a concern for rigor that makes the fine points most accessable. He devotes several pages to deciphering complex declarations. One of his examples is: int *(*(*x)[6])(); which translates as: x is a pointer to an array[6] of pointers to functions returning a pointer to an integer. Geez! #: 3236 S10/Tandy CoCo 03-May-90 06:20:10 Sb: #3216-#C arrays Fm: Mark Griffith 76070,41 To: Bill Dickhaus 70325,523 (X) Bill, Bruce Mackenzie's method is good, i.e.; char **sp; /* declare a pointer to a character pointer */ sp=calloc(MAX,sizeof(char *)); /* assign it to the base of a block of memory to hold the pointer array */ You'll need to know the MAX number of elements before you do this tho. If you need some more after you made a array, then calloc() another larger array and copy the pointers from the first into the second and then free() the first array. However, you will also need to malloc() enough memory to hold each element of the array before you copy anything into it. If the elements are strings, then you'll need to allocate strlen() + 1 for each since strlen() doesn't count the \0 at the end. If you don't, it will work but you might have a weird bug, or you'll stack overflow sometime during the program run. Mark There is 1 Reply. #: 3346 S10/Tandy CoCo 07-May-90 18:40:11 Sb: #3236-C arrays Fm: Bill Dickhaus 70325,523 To: Mark Griffith 76070,41 (X) Mark, Thanks, as I mentioned to Bruce, I didn't realize I don't have to explicitly define the pointer array as an array. The other problem I've already run in to, so now I make sure to malloc() one more byte than I really need. I've had all kinds on interesting stuff happen when I forget to do it that way. Bill #: 3240 S10/Tandy CoCo 03-May-90 08:02:25 Sb: #3218-tsmon HELP! Fm: Lee Veal 74726,1752 To: Everett Chimbidis 76370,1366 (X) You should be able to special order the Dev. Pak. If it's still in the Catalog, then you should be able to order it through CMC or Express Order. Most store creatures are too lazy to figure that out for you, but if you press the issue they will. Especially if you mention that you want the name of their DM. Lee #: 3241 S10/Tandy CoCo 03-May-90 10:21:22 Sb: #3231-#tsmon HELP! Fm: Pete Lyall 76703,4230 To: Paul Rinear 73757,1413 (X) Paul - Top of my head, I don't recall the I/O base address of the Modem Pak. If it is also $FF68, then it's the same as the RS-232 pak. If you have enabled all the cartridges on the Multipak bus with a wiring change, then these two could be in conflict. Even using the IRQ HAK will not help that. Recommended fixes: o - Alter the address of the RS-232 pak to $FF6C. There are several files here that give instructions on how to do that. Beware that some are unnecessarily complicated.. there are a few easy ones. o - Ditch the modempak, unless you really need it. Pete There is 1 Reply. #: 3243 S10/Tandy CoCo 03-May-90 12:48:50 Sb: #3241-tsmon HELP! Fm: Paul Rinear 73757,1413 To: Pete Lyall 76703,4230 (X) Pete- The Modpak is at $FF6C; no confliGood to know you can change those RS-232 pak addresses though. Thx, Paul #: 3256 S10/Tandy CoCo 03-May-90 22:43:19 Sb: #3223-#tsmon HELP! Fm: Everett Chimbidis 76370,1366 To: Shawn Thomas 72300,2066 (X) Tryed that to No longer avalble. There are 2 Replies. #: 3258 S10/Tandy CoCo 03-May-90 22:54:55 Sb: #3256-#tsmon HELP! Fm: Shawn Thomas 72300,2066 To: Everett Chimbidis 76370,1366 (X) Everett- Well, I guess that pretty much sums up the coco as far as Tandy is concerned. But I'm not surprised. Shawn There is 1 Reply. #: 3278 S10/Tandy CoCo 04-May-90 17:32:05 Sb: #3258-tsmon HELP! Fm: Everett Chimbidis 76370,1366 To: Shawn Thomas 72300,2066 So now what? #: 3341 S10/Tandy CoCo 07-May-90 02:01:47 Sb: #3256-#tsmon HELP! Fm: Mike Haaland 72300,1433 To: Everett Chimbidis 76370,1366 (X) ~ Everett, YOUR ARE INCORRECT!!!! You can still get the Development System (Dev-Pak as we call it) Cat # 26-3032 through Express Order Software (EOS) from Tandy. It costs $99.95. The phone number to place your order is 1-800-321-3133. I just hate when folks spread incorrect info! Especially when it's something like this. Best, Mike #: 3246 S10/Tandy CoCo 03-May-90 20:21:52 Sb: #3224-#Home Publisher help Fm: Bruce Isted (UG VP) 76625,2273 To: Shawn Thomas 72300,2066 (X) ~ Shawn, I'd forgotten all about that disk of HP printer drivers! Thanks very much for reminding me about it. That's probably where I'll find a DMP-110 driver, if there's one anywhere. Now for another request... do you (or anyone else who may have it and want to jump in and help!) have the stock number for that disk? I'm sure I'll have to order it, and there's no hope that any of the local RS stores will be able to find out for me. As a matter of fact, there's a good chance that InterTan doesn't even carry it, but I'll deal with that if/when I have to! Bruce There is 1 Reply. #: 3257 S10/Tandy CoCo 03-May-90 22:53:38 Sb: #3246-Home Publisher help Fm: Shawn Thomas 72300,2066 To: Bruce Isted (UG VP) 76625,2273 (X) Bruce- I'll see if I can find my software catalog, somewhere on this thing I call a desk (grin). Will let you know as soon as I find it. Shawn #: 3247 S10/Tandy CoCo 03-May-90 20:29:56 Sb: #KingQuest/H0? Fm: CRAIG WYNN 72125,466 To: All Their seems to be more that meets the eye to getting this running on Level 2 Isted/Eliminator sys. I installed a new boot with games drivers VI and A..IRQDr. I didn't use games 60hz Clock...must I? The system boots up leaving 414k. Is that enough? When I execute Sierra the system hangs. I'am using the shell that came with it. What kind of window is it suppose to be run out of? Is their a file on the sig that explains all this? There is 1 Reply. #: 3261 S10/Tandy CoCo 04-May-90 01:56:42 Sb: #3247-#KingQuest/H0? Fm: Kevin Darling (UG Pres) 76703,4227 To: CRAIG WYNN 72125,466 (X) Do you have Bruce's clock also installed? You also need vdgint in your bootfile. The game runs in a VDG style window. There is 1 Reply. #: 3276 S10/Tandy CoCo 04-May-90 16:40:22 Sb: #3261-KingQuest/H0? Fm: CRAIG WYNN 72125,466 To: Kevin Darling (UG Pres) 76703,4227 (X) No I didn't install it...but before I went and created another boot I thought I better checkup on what "our gang" has to say. #: 3306 S10/Tandy CoCo 06-May-90 12:24:34 Sb: #KingQuest/H0? Fm: CRAIG WYNN 72125,466 To: Bruce Isted (UG VP) 76625,2273 (X) Everything is under control...many thanks for following up my message. I wasn't executing from a VDG screen....toc is set I believe correctly...all d1...although it keeps asking me to flip disketts? its working just the same. What really baffled me was that it was trying to reboot when I first setup and then I would get a failed boot message. This was after I had already up and running a new boot with the prescribed drivers. Well the kids are happy. What...am I suppose to remove my orginal message now ??? There is 1 Reply. #: 3307 S10/Tandy CoCo 06-May-90 15:02:53 Sb: #3306-KingQuest/H0? Fm: Zack Sessions 76407,1524 To: CRAIG WYNN 72125,466 If you have KQ3 on a single disk, this is what your toc.txt should look like: d1 s1 v0 v1 d1 s1 v0 v2 v12 d1 s1 v0 v3 v12 d1 s1 v0 v4 v12 v14 d1 s1 v0 v5 v12 v14 d1 s1 v0 v6 v12 d1 s1 v0 v7 v11 d1 s1 v0 v8 v11 d1 s1 v0 v9 v11 Zack #: 3255 S10/Tandy CoCo 03-May-90 21:59:08 Sb: #Help with Ramdisks? Fm: Zack Sessions 76407,1524 To: ALL I need some help!!! I want to install a second ramdisk drive called /r1. I am using the Dev Pack DDs. I tried patching a copy of one of the with a drive number of $01 in offset $13, and changing offset $22 (which is the 0 of device name /r0) to a $B1 to change it to /r1. (Umm, those should be /R0 and /R1). But when I include this new module in a bootlist and gen it, things work very strange. I have two devices (apparently) /r0 amd /r1, they appear to be the SAME device. If I dsave some files into /r0, and the do a dir of /r0 and /r1 the files show up in both volumes! What am I doing wrong??? Zack There is 1 Reply. #: 3263 S10/Tandy CoCo 04-May-90 02:03:47 Sb: #3255-#Help with Ramdisks? Fm: Kevin Darling (UG Pres) 76703,4227 To: Zack Sessions 76407,1524 (X) Zack - I would suspect that it ignores drive numbers. Do this instead: change the ADDRESS of the device (and the name). Adding one to the address in the descriptor should be sufficient to make OS9 recog it as a different device. There is 1 Reply. #: 3275 S10/Tandy CoCo 04-May-90 15:09:47 Sb: #3263-#Help with Ramdisks? Fm: Zack Sessions 76407,1524 To: Kevin Darling (UG Pres) 76703,4227 (X) Hmm, change the ADDRESS? Well, looking at my Tech Ref on page 5-9, RBF Type Descriptor Module, I see no reference to an ADDRESS. What be you talkin bout? Zack There is 1 Reply. #: 3277 S10/Tandy CoCo 04-May-90 17:25:36 Sb: #3275-#Help with Ramdisks? Fm: Kevin Darling (UG Pres) 76703,4227 To: Zack Sessions 76407,1524 (X) Zack - the address is where the device is located... usually a fake one for ramdisks. In my book check page 7-2-5: the address is at offset $0E,$0F and $10 in a descriptor module. Under L-II, it'll start with $07Fx, usually. the byte at offset $10 is the one you'd increment by one. Or, in your tech ref manual page 5-9, bytes $0-11 are marked as "standard device descriptor module header". So looking for that, we find page 4-17 which has the layout. - kev There are 2 Replies. #: 3279 S10/Tandy CoCo 04-May-90 18:42:37 Sb: #3277-Help with Ramdisks? Fm: Zack Sessions 76407,1524 To: Kevin Darling (UG Pres) 76703,4227 (X) Ahhh, found it. Thanks, Kev. #: 3280 S10/Tandy CoCo 04-May-90 21:36:29 Sb: #3277-#Help with Ramdisks? Fm: Zack Sessions 76407,1524 To: Kevin Darling (UG Pres) 76703,4227 (X) Kev, You're ramdisk DD has the value $07FFE0 at location $0e. But ALL of the Dev pack DDs have all zeros in that location! What should I do? I need to use the Dev Pack ramdisk cuz I will soon be installing my 1meg upgrade. Thanks! Zack There is 1 Reply. #: 3281 S10/Tandy CoCo 05-May-90 00:06:01 Sb: #3280-#Help with Ramdisks? Fm: Kevin Darling (UG Pres) 76703,4227 To: Zack Sessions 76407,1524 (X) Zack, just take one of them and change the address from $000000 to $000001. That should do it. Either $7FFxxx or $000xxx should be safe addresses. - kev There is 1 Reply. #: 3282 S10/Tandy CoCo 05-May-90 10:01:46 Sb: #3281-Help with Ramdisks? Fm: Zack Sessions 76407,1524 To: Kevin Darling (UG Pres) 76703,4227 (X) I tried that (sorry I forget to mention that). When I tried to write to the the device, the process attempting the write would "hang". For instance, I tried to edit a file in the ramdisk, and when I told the editor (VED) to exit and write out the file, it just blinked "Working" for several minutes and didn't actually write out anything! This is getting frustrating! Zack #: 3283 S10/Tandy CoCo 05-May-90 10:39:35 Sb: #3219-#t3 help Fm: Steve Wegert 76703,4255 To: Everett Chimbidis 76370,1366 (X) Everett, Haven't we covered this somewhere? Here's what I'd do: Use the CoCo that has the hard drives as the host system. Install tsmon and a login package with the /dd/sys/password file. Set up a terminal program (sterm will work nicely) on the other CoCo. Run a null modem (cable with the xmit and recv lines swapped) to the rs232 port on the host and you should be set. If you don't want to mess with tsmon et al, then a line on the host like this; shell i=/t2& should plop a shell on that port. You'll still need the null cable and terminal program. You might want to check out SERIAL.TXT in the libs here for more details. I think it's in DL1. Steve There is 1 Reply. #: 3298 S10/Tandy CoCo 05-May-90 16:46:04 Sb: #3283-#t3 help Fm: Everett Chimbidis 76370,1366 To: Steve Wegert 76703,4255 (X) This is good but i have a t2 allready , Need a t3! There are 2 Replies. #: 3304 S10/Tandy CoCo 06-May-90 09:46:09 Sb: #3298-#t3 help Fm: Steve Wegert 76703,4255 To: Everett Chimbidis 76370,1366 (X) Everett, I'm soooooooo confused! ;-) You say you have only _2_ RS233paks .. one on each computer, jes? If this is the case, then they both can be using the /t2 descriptor ...one on each computer. No conflict. On the other hnd, if I've dropped a few bits along the wy, and you're using the 2 paks on one computer, then yes... you'll need a /t3 descriptor. I't's a bit involved, but really rather simple to accomplish. /t2 and /t3 are idntical _except_ for the address and name. You can use a utility such as dEd to make those changes. The only other concern would be modifying the packs to be addressed differently. Everett, I'm purposly being vague untill I've understood exactly what you're trying to accomplish. No need muddying the waaters even more than they are now! :-D Steve There is 1 Reply. #: 3340 S10/Tandy CoCo 07-May-90 01:54:45 Sb: #3304-#t3 help Fm: Everett Chimbidis 76370,1366 To: Steve Wegert 76703,4255 (X) yes steve thats it i have 2 paks on one computer. need to know how to alter the pack & the program (useing ded) can you help? There is 1 Reply. #: 3348 S10/Tandy CoCo 07-May-90 18:42:44 Sb: #3340-t3 help Fm: Steve Wegert 76703,4255 To: Everett Chimbidis 76370,1366 Everett, It's not for the faint at heart, but details on the pak modification can be found in LIB 10 called MPI232.TXT. The changes to the descriptor would be adjusting the address as well as the name (/t2 to /t3 setting the high order bit). Read the file and if you decide to attempt the hack to the pak... I'll be glad to look up the values to change in the descriptor. Steve #: 3342 S10/Tandy CoCo 07-May-90 02:02:03 Sb: #3298-t3 help Fm: Mike Haaland 72300,1433 To: Everett Chimbidis 76370,1366 (X) ~ I've been following this thread for a few days. What gives? How many serial ports are you running? And in what slots? Why do you need a /t3? is that for a second RS-232 pak? If so, has the second pak been re-addressed? It seems you just want to be frustrated. Everyone is trying to give you some help, but you don't seem to be taking it that way! Just 'snippy' responses like, "It don't work" and "I can't get the Dev-Pak", etc. So, in more than one phrase, please tell us what you are trying to do and how your system is setup HARDWARE wise. Then, and ONLY then, can any of us give you a hand. Before you reply to this message, capture it, (Save it to disk), read it OFFLINE, Then THINK about what you need and describe in *detail* WHAT you are trying to do. All the answers given so far should have gotten you going, BASED ON THE INFORMATION YOU PROVIDED!!! We all would like to see you get setup the way you want. Just be clear in your needs. Please don't take this message wrong. I know how frustrating things can be, but with a little COMMUNICATION and PATIENCE, you'll be set up in no time. Mike #: 3286 S10/Tandy CoCo 05-May-90 12:00:51 Sb: #Second Ramdisk solved Fm: Zack Sessions 76407,1524 To: Kevin Darling Kev, OK, I figured out this second ramdisk problem though a process of trial and error. What I was doing wrong was that I was also patching the IT.DRV field ("Drive Number" @ $13) from a $00 to a $01. That appears to have been a no-no. Leaving it a $00, patching $10 to a $01 and the drive name to /r1 (with upper bit in 1 turned on, of course!) does the trick. FYI, one iteration involved changing the Address field in the header to the value you use in your r0 dd in drive /r0 and added one for /r1. That worked too! Wonder why the Dev Pack ramdisk dd are all zeros in the address field? Zack There is 1 Reply. #: 3300 S10/Tandy CoCo 05-May-90 22:35:48 Sb: #3286-Second Ramdisk solved Fm: Kevin Darling (UG Pres) 76703,4227 To: Zack Sessions 76407,1524 (X) Zack - good. It *had* to work . Interesting about the drive number screwing things up tho. Just about any address should work, tho of course our L-II needs either $000xxx or $7FFxxx as the beginning of the address (to keep from using up an 8K block in system map for "mapping in I/O"... which we ain't got!). Both of those address ranges translate out to blocks 00 or 3F... which of course are always already mapped into the system map (see pmap output). - kev e/x #: 3302 S10/Tandy CoCo 05-May-90 23:47:19 Sb: #Internals question Fm: Zack Sessions 76407,1524 To: ALL One thing has been bugging me. Where do REL, Boot, and OS9p1 come from? I know that they are not in my OS9Boot file. An ident tells me that, for certain. I know that they come from track 34 on the boot disk, but HOW DO THEY GET THERE? I build a boot disk with an os9gen command, but REL, Boot, and OS9p1 are not in my bootlist file, and they are not modules in my module directory. So, WHERE DO THEY COME FROM?!?!?!? Zack There is 1 Reply. #: 3303 S10/Tandy CoCo 06-May-90 00:35:34 Sb: #3302-Internals question Fm: Kevin Darling (UG Pres) 76703,4227 To: Zack Sessions 76407,1524 (X) Zack - os9gen and cobbler steal the kernel modules (rel/boot/os9p1) from memory. So if you accidentally trash part of one of those modules, the os9gen will then carry on that bad module thru generations of bootdisks... easy to spot this if it happens tho: one of the modules won't show up in MDIR. Easy fix too: just boot with a GOOD bootdisk, and then do another os9gen... which'll take the good modules from memory again. - kev #: 3309 S10/Tandy CoCo 06-May-90 16:19:39 Sb: #Fastgraf / Bounce.ar Fm: TONY CAPPELLINI 76370,2104 To: Kevin Darling Kevin Hi. It's been a long time since I have logged on. I have just relocated again, and am just getting back to os-9. I have downloaded the fastgraf.ar patch (thanx) and installed it succesfully. The increase in grafx speed was amazing. I also downloaded th bouncing ball demo, but it will not run on MY system. Whebn When I type load bounce.b09 from basic 09, it starts to load but immediately comes up with error #034 , and is referring to a line that says err on error goto 100. I looked up the error code in the basic 09 section of the LII manual and it says error #034 missing closing parenthesis. I looked all through the code, but could not find the error. Oddly enough this exact same version of bounce runs on a friends machine. I am not familiar with writing programs in basic 09, only C, so there is a good chance I overlooked it. But it does not explain why the same piece of code runs on another machine. Any suggestions ??? Thanx. TC There is 1 Reply. #: 3335 S10/Tandy CoCo 06-May-90 21:18:21 Sb: #3309-Fastgraf / Bounce.ar Fm: Kevin Darling (UG Pres) 76703,4227 To: TONY CAPPELLINI 76370,2104 Hi Tony! Long time no see! On bounce: I can't remember how much memory it needed, but I thought it was only the default 8K. Hmmm... what does "mem" show you under basic09? Is it possible that you're using the old L-I basic09 (defaults to 4K I think)? kev #: 3310 S10/Tandy CoCo 06-May-90 16:25:44 Sb: #New OS9 ? Fm: TONY CAPPELLINI 76370,2104 To: ALL I have just read in the latest edition of the os9 UG newsletter that Microware has officially announced that they will no longer support level II. If that is true, who is it that is / will be writing this new hot version for the COCO 3? We have all seen fastgraf, right ? The impression I got is that fastgraf was just a sample of what this new version could do. What about those rumours that Dennis Skala has been talking about ? He supposedly saw all these fantastic things running on a coco 3? SO I ask, If Microware isn't going to do it, who is ????? TC There is 1 Reply. #: 3324 S10/Tandy CoCo 06-May-90 20:15:53 Sb: #3310-New OS9 ? Fm: Steve Wegert 76703,4255 To: TONY CAPPELLINI 76370,2104 How about 'a group of independent third parties' ? You can beleieve the rumors ... I've seen some of the nifty stuff too. Steve #: 3329 S10/Tandy CoCo 06-May-90 20:38:53 Sb: #ROGUE HELP HELP HELP HLP Fm: WAYNE LAIRD 73617,3042 To: ALL several descripances with the docs on it. a. it doesnt tell you to backup the disk to another nor give you the cmd to do so, does this harm the game, something the writers put in to prevent piracy? b when i get to a certain level 7,8 or 9 the 'monsters' will "shut down" and become nothing more than "0's"- I can still find the stairway and go to the different levels BUT the docs say that there are only26 levels yet I find under the above problems getting to levels 29,30 ,31 and so on. c when the above problems start to occur, I also can't pick up anything. d. The graphics come in great but they are all Black & white , is this norm? any help on the above problems is great! best regards wayne ps on "a", i meant if i back it up under another os9 master disk, it seems that the problems occur only under the backed version thus far. There is 1 Reply. #: 3349 S10/Tandy CoCo 07-May-90 18:44:10 Sb: #3329-#ROGUE HELP HELP HELP HLP Fm: Floyd Resler 72500,2572 To: WAYNE LAIRD 73617,3042 (X) I've experienced the 0 problem myself. I haven't seen the problem while using the graphics, however. And, yes, the graphics are supposed to be in black and white. Kind of makes you wonder why the graphics require 512k, huh? There is 1 Reply. #: 3375 S10/Tandy CoCo 09-May-90 00:37:08 Sb: #3349-ROGUE HELP HELP HELP HLP Fm: WAYNE LAIRD 73617,3042 To: Floyd Resler 72500,2572 (X) well floyd, i know that you can open a window under lvII OS9 with only 128k but that didn't do much since it took up all the ram , just for the CMDS @ 128k so probably it's along those lines. best, wayne #: 3352 S10/Tandy CoCo 07-May-90 19:46:41 Sb: #OS-9 Startup Fm: Bob Archambault 76506,3544 To: ALL When I create a graphics window that is needed to run a particular program, I do it from my startup procedure file so that the window is created automatically when I boot the disk. So far, so good. QUESTION: What command(s) can I put in the startup file so I don't have to press the key to open the window? In other words, I want the startup file to open the window and display it on bootup. Also, I'd like to be able to auto-exec a program FROM that window. HELP ???!!! Bob There are 3 Replies. #: 3356 S10/Tandy CoCo 07-May-90 21:21:43 Sb: #3352-#OS-9 Startup Fm: Zack Sessions 76407,1524 To: Bob Archambault 76506,3544 (X) There is nothing you can do in startup to change to a different window. You will need to patch CC3Go to come in the other window. To auto start a program at boot, put a copy of it in your CMDS directory with the name AutoEx and you're good to go! Zack There is 1 Reply. #: 3366 S10/Tandy CoCo 08-May-90 20:57:15 Sb: #3356-OS-9 Startup Fm: Bob Archambault 76506,3544 To: Zack Sessions 76407,1524 (X) Thanks very much for the info, Zack. Bob #: 3358 S10/Tandy CoCo 07-May-90 21:47:17 Sb: #3352-OS-9 Startup Fm: Kevin Darling (UG Pres) 76703,4227 To: Bob Archambault 76506,3544 (X) Bob, It depends on exactly what you want. If you simply want to always run and goto a certain program, why not just start up other shell windows in the background, and then start the program on /term? Then you ain't gotta go nowhere . Example: * ------------------------------------------------------------ * Script to start a shell window in backgnd and change current * one to gfx window type 8... then start "program" shell i=/w& -t display 1b24 display 1b20 8 0 0 28 18 1 0 2 display 1b21 #: 3359 S10/Tandy CoCo 07-May-90 21:47:43 Sb: #3352-#OS-9 Startup Fm: Kevin Darling (UG Pres) 76703,4227 To: Bob Archambault 76506,3544 (X) For the second example, let's instead start your gfx program on another window and CLEAR to it... note that when you exit the program the window will go away: * ------------------------------------------------------------ * Script to make 80x24 type 7 window and start a program in it. * Create the window, select it, begin program: (display 1b20 7 0 0 50 18 1 0 2 1b 21 >/1&) >/w Step by step: the (parenthesis)>/w starts a subshell with paths like this: 0 stdin < script 1 stdout > new window (/w) 2 stderr >> whatever window you're on now Now the subshell executes its internal line, which first does a DWSET and SELECT with paths like this: 0 stdin < whatever window you're on now (/2 = path 2) 1 stdout > new window 2 stderr >> whatever window you're on now Stdin had to be the current window or the SELECT won't work, y'see. Now we finally fork the program we want (I just used "shell") with the rest of its paths redirected to the new window: 0 stdin < new window 1 stdout > new window 2 sdterr >> new window Kinda like an interlocking puzzle, but if you simply follow each path as you change it, it's really not terribly hard. The key was to make sure only one path (stdout) was opened to /w, and that this SINGLE path got duplicated via the < and >> commands into the remaining paths as needed. - kev There is 1 Reply. #: 3367 S10/Tandy CoCo 08-May-90 21:13:13 Sb: #3359-#OS-9 Startup Fm: Bob Archambault 76506,3544 To: Kevin Darling (UG Pres) 76703,4227 (X) Hi Kev, Thank you much for the info - it was, as you like to say, "Clear as mud", but is now becoming a little clearer . There seems to be only one problem with me using either one of those methods, in order for this program to work, I have to merge stdfonts, stdptrs, & stdpats_4 with my type 7 gfx window before running the program. How do I go about doing this???? By the way Kev, I did get my 512k upgrade (per last months discussions) and it is working great. As you said, OS-9 runs beautifully when it has enough memory to work with. Thanx again, Bob There is 1 Reply. #: 3372 S10/Tandy CoCo 08-May-90 23:09:32 Sb: #3367-#OS-9 Startup Fm: Kevin Darling (UG Pres) 76703,4227 To: Bob Archambault 76506,3544 (X) Bob - the stdfonts etc need only be merged once, to any window device. Do you boot to term.win or a term.vdg? If to a real window, just merge the fonts/etc first and you're done. If you boot to a vdg screen, just merge the fonts/etc to /W. That's it. Glad you got the 512K! Really opens things up, eh? Yeah. - kev There is 1 Reply. #: 3402 S10/Tandy CoCo 10-May-90 18:21:14 Sb: #3372-OS-9 Startup Fm: Bob Archambault 76506,3544 To: Kevin Darling (UG Pres) 76703,4227 (X) Thanks a million, Kev. It worked out great!!!!!!!!!! Bob #: 3362 S10/Tandy CoCo 08-May-90 19:15:47 Sb: #One Meg Tuning Fm: Robert DeBolt 76417,2225 To: 76703,4227 (X) Kev, Well, I went and done it: got the 1-meg upgrade from Disto. Friend of mine installed it for me last evening. The installation went great and I brougnt it home and gen'ed a boot for it using the patched modules. Everything seems to be OK except for DeskMate and Max9 using the hi-res mouse. DM is patched to use the HRM. The cursor is erratic and jumps all over the place and will eventually cause the system to crash. Max9 comes up with the palette menu and when I click the mouse I get error #189. I tried a custom program Mike Haaland helped me with and the HRM werks fine there. The keyboard mouse works fine. What's happening? Bob There is 1 Reply. #: 3376 S10/Tandy CoCo 09-May-90 00:51:43 Sb: #3362-One Meg Tuning Fm: Kevin Darling (UG Pres) 76703,4227 To: Robert DeBolt 76417,2225 (X) Bob - Dunno. One thing people found out was that replacing the R22 jumper with a variable resistor, would let you fine-tune things for your particular Coco/GIME. Somewhere around 40 ohms seems to work for most. Some CoCo's work fine as-is, it now turns out that some need the fine-tuning. We shoulda expected this, I guess, knowing what we know about different machines having sparklies, etc . I think later kits are going to include the variable resistor. I'd get your friend to install one that you can try tuning with. Let me know how it goes! best - kev #: 3369 S10/Tandy CoCo 08-May-90 21:44:41 Sb: #tmode question Fm: Zack Sessions 76407,1524 To: ALL I have just noticed an apparent anomoly tonight. If I save a window module to a disk file, then change the "pause" from off to on OR on to off, then save the module again the two files are identical. No matter what tmode says the value for pause is, the byte at offset $19 is ALWAYS a zero. Any ideas, anyone? Zack There are 2 Replies. #: 3373 S10/Tandy CoCo 08-May-90 23:10:48 Sb: #3369-#tmode question Fm: Kevin Darling (UG Pres) 76703,4227 To: Zack Sessions 76407,1524 (X) Tmode changes the working path. Xmode changes the actually descriptor... so use it before saving out a module. Uh. that should be "actual" not "actually". groan. There is 1 Reply. #: 3380 S10/Tandy CoCo 09-May-90 17:08:42 Sb: #3373-#tmode question Fm: Zack Sessions 76407,1524 To: Kevin Darling (UG Pres) 76703,4227 (X) Umm, so does that imply that a SS.OPT SetStt call also only changes the working descriptor, and not the actually descriptor? Zack There is 1 Reply. #: 3382 S10/Tandy CoCo 09-May-90 18:39:13 Sb: #3380-tmode question Fm: Kevin Darling (UG Pres) 76703,4227 To: Zack Sessions 76407,1524 (X) Righto. SS.Opt (which tmode does) only works on the Path Descriptor, which is originally is set when created, from the Device Descriptor module. You can imagine why this is... example: your terminal program uses SS.Opt to turn off echo. You sure don't want this to be permanent and affect following programs which might use the same window descriptor later. Same with disks etc. A device descriptor describes the default settings and/or maximum capabilities (like with DS80 drives) of a device. Path descriptors are concerned with currently opened paths/files specific to processes. #: 3386 S10/Tandy CoCo 09-May-90 19:21:15 Sb: #3369-#tmode question Fm: Bruce Isted (UG VP) 76625,2273 To: Zack Sessions 76407,1524 (X) ~ Zack, I'm sure others have already answered, but there's no anomoly at all with TMode. TMode only affects the current path descriptor's options, which are originally copied from the device descriptor's options. If you want to change the device descriptor's options, use XMode instead of TMode. Bruce There is 1 Reply. #: 3391 S10/Tandy CoCo 09-May-90 21:57:28 Sb: #3386-tmode question Fm: Zack Sessions 76407,1524 To: Bruce Isted (UG VP) 76625,2273 (X) I also found that an Overlay window inherits those originally copied options instead of the current path options. Zack #: 3374 S10/Tandy CoCo 08-May-90 23:12:02 Sb: eliminator software Fm: Bruce Isted (UG VP) 76625,2273 To: All Hi All, This is just a quick note to announce an updated version of my Eliminator software. Look for "ELIMSW.AR" in lib 10. It contains an updated DACIA driver that works properly with RIBBS, as well as an updated manual file. Bruce #: 3381 S10/Tandy CoCo 09-May-90 18:11:42 Sb: #PhatomGraph Fm: Floyd Resler 72500,2572 To: All I just purchased PhantomGraph and am having some difficulties. I followed the instructions on saving out the sample "Camp Costs" graph. But when I try to OPEN it, the program can't find the file. Is there a special extension that PhatomGraph is looking for? There is 1 Reply. #: 3390 S10/Tandy CoCo 09-May-90 21:55:51 Sb: #3381-#PhatomGraph Fm: Zack Sessions 76407,1524 To: Floyd Resler 72500,2572 (X) The documentation isn't quite explicit enough. I forget the exact sequencem, but after entering the name you have to click INSIDE the dialog box to actually save the graph. Zack There is 1 Reply. #: 3394 S10/Tandy CoCo 10-May-90 13:13:48 Sb: #3390-#PhatomGraph Fm: Floyd Resler 72500,2572 To: Zack Sessions 76407,1524 (X) Yeah, I figured that out after I left the message. I also found out that if you run it in a 16 color window you have to have STDPATS_16 merged in. Makes sense, but it took me forever to figure out why I kept getting an undefined buffer error when I ran it from my OS9 system but it would run fine from the PhantomGraph disk. I like the program, though. It's fun to play around with. There is 1 Reply. #: 3397 S10/Tandy CoCo 10-May-90 15:51:56 Sb: #3394-#PhatomGraph Fm: Zack Sessions 76407,1524 To: Floyd Resler 72500,2572 (X) The only real problem Phantomgraph has is printing. If you use a DMP-105/6, you'll need to patch the driver. I have the patch around somewhere, let me know if you need it. Also, even when you have patched the driver, it takes it about 45 minutes to dump ONE graph!! Zack There is 1 Reply. #: 3418 S10/Tandy CoCo 11-May-90 16:06:46 Sb: #3397-PhatomGraph Fm: Floyd Resler 72500,2572 To: Zack Sessions 76407,1524 (X) I tried to print a graph on my Star NX1000 and what a mess! Although I could make out the graph (short of), it was so large and spread out. #: 3388 S10/Tandy CoCo 09-May-90 21:02:18 Sb: #CoCo List Fm: Randy Wilson 71561,756 To: 76703,4255 (X) Steve, You said to yell if problems arose with the CoCo List. Well, I'm yellin'. I've subscribed twice in the last ten days, and haven't heard a peep put of LISTSERV. Is this normal behavior, or am I doing something wrong? BOth times I copied the instructions to the letter, capslock and puncuation included. Randy (being ignored by the outside world) Wilson P.S. The times I subscribed were Sun. April 29(?) at 10pm, and Sat. May 5 at about 6pm. Possible that LISTSERV only works 9 to 5 M-F??? There are 2 Replies. #: 3389 S10/Tandy CoCo 09-May-90 21:07:54 Sb: #3388-#CoCo List Fm: Steve Wegert 76703,4255 To: Randy Wilson 71561,756 (X) Randy, I've been getting my LISTSERV mail just fine. The traffic has dropped off quite a bit (only had 7 messages when I logged on), but it's out there. Did you get any acknowledgement from the LISTSERV when you subscribed? Can you show us what exactly you sent ...and to what address? Steve There is 1 Reply. #: 3403 S10/Tandy CoCo 10-May-90 18:50:38 Sb: #3389-#CoCo List Fm: Randy Wilson 71561,756 To: Steve Wegert 76703,4255 (X) Steve, No acknowledgement either time. I hand typed the message in both times. Couldn't see a need to upload a file for one line. It went something like this: SUBSCRIBE COCO Randy Wilson /ex Send to: >INTERNET:LISTSERV@puuc.bitnet Subject: subscribe coco I took it verbatum from the instructions. Do you have to REGISTER first? While I have you, I've seen mention of Eplex mailboxs overflowing. I take weekend trips that last up to five days. Will this present any problems with the list?? Randy There is 1 Reply. #: 3409 S10/Tandy CoCo 10-May-90 21:47:53 Sb: #3403-#CoCo List Fm: Zack Sessions 76407,1524 To: Randy Wilson 71561,756 (X) Hey SYSOP!!! You need to read the message this is a reply to. There is obviously a file in the libs which has the wrong address for the COCO Listserver on the BITNET. The address should be: >INTERNET:LISTSERV@pucc.bitnet ^ This character -----+ is inadvertanly reported as a u, as in puuc. Hope this helps, Randy. Zack There is 1 Reply. #: 3411 S10/Tandy CoCo 10-May-90 23:19:54 Sb: #3409-CoCo List Fm: Randy Wilson 71561,756 To: Zack Sessions 76407,1524 (X) Zack, BINGO!! I just went thru the file again, and counted 15 pucc's, and 1 puuc. Guess which one I was using as an example.... I shoulda caught this one myself. Thanks! Randy #: 3401 S10/Tandy CoCo 10-May-90 17:46:20 Sb: #3388-#CoCo List Fm: Bill Dickhaus 70325,523 To: Randy Wilson 71561,756 (X) Randy, It very well could be that the LISTSERV was down at those times. Many of the Bitnet lists run on university computers, and lots of those shut down on weekends, especially sunday. As Steve mentioned, you should have received an acknowledgement to your SUBSCRIBE command. Most of the Bitnet (and any other Internet type nets) run in real time, but response times are some times incredibly slow. So when you send your message to the list, it gets sent immediately, but may takes hours to get there, depending on how long each intermediate node hangs on to the message before it passes it on, or, in some cases, an intermediate node is down and the message is held until that node is back up again. Its also possible the message went into the twilight zone, never to be seen again! (Seriously, internet "protocol" says that a message does not have to be, and may not be, delivered to its destination and can be summarily dumped at any point along the way). Bill There is 1 Reply. #: 3404 S10/Tandy CoCo 10-May-90 18:50:49 Sb: #3401-CoCo List Fm: Randy Wilson 71561,756 To: Bill Dickhaus 70325,523 (X) Bill, Ahhh, so my joke about business hours only just might be the case. I'll try again tonight, or should I carry the puter to work and do it tommorrow? Randy #: 3395 S10/Tandy CoCo 10-May-90 14:03:40 Sb: Pictures Needed Fm: Dale L. Puckett 71446,736 To: All Here's a chance to put your picture -- or a friends -- in a history book! We desperately need pictures of people using CoCo's. We need to see people -- especially those who have pioneered unusual applications on their own in the far corners of the world. We need pictures of CoCo's being used by big corporations to do real work. Don't forget, everyone loves pictures of children. If you have a shot of your son or daughter hard at work -- or play -- on your CoCo let us see it. We also need pictures of gadgets that people dreamed up and hooked up to their CoCo. We need pictures of any gags people may have pulled ... at home or at Rainbowfests ... or anywhere. Anything that shows the important part the CoCo played in American life. If you have a picture ... funny or serious ... of you with someone famous ... Kevin Darling, Marty Goodman, Wayne Day, etc. Give us a chance to print it. Or maybe, you have a picture of someone famous outside the CoCo community -- a Mayor, Governor, Congressman, President, Actor, Author, etc. using your CoCo. We'd love to see it! Please mail your pictures to our new Kansas address. If you have any questions ... drop us a note here. Or, write: Dale and Esther Puckett, 23440 West Highway 54, Goddard, KS 67052 -- we're on the Yellow Brick Road. Really! If you want to call: 316-794-2347. Or, leave us your number here and we'll try to get back to you. CoCo: An Affectionate History of the Tandy Color Computer is your book. We hope to hear from you soon. Thanks! Dale and Esther #: 3396 S10/Tandy CoCo 10-May-90 15:39:59 Sb: Anecdotes Needed Fm: Dale L. Puckett 71446,736 To: All Here's a chance to be remembered in CoCo History! We desperately need anecdotes and stories about the people who have kept the Color Computer alive during the past 10 years for CoCo: An Affectionate History of the Tandy Color Computer. We would like to hear your story too! If you remember any funny "CoCo" stories -- or serious stories for that matter -- please share them with us. We'll do our best to get them into print. We need pictures too. See the related message in Section 10. We would like to hear about the people you know who pioneered both usual and unusal applications for their CoCo. If you know anyone who has hooked up an exotic gadget to their CoCo -- please send us a note describing it. If you know someone who has an anecdote to share, please send us their name, address and phone number. If you witnessed any great gags at home or at a Rainbowfests, let us know what happened. Anything that shows the effect the CoCo had on American culture should be recorded in this book. If you have a story -- funny or serious -- about someone famous ... Kevin Darling, Marty Goodman, Wayne Day, etc. Give us a chance to print it. Please E-Mail (preferred) your stories to us here. Or, send them snail mail to our new Kansas address: Dale and Esther Puckett, 23440 West Highway 54, Goddard, KS 67052 -- we're on the Yellow Brick Road. Really! If you have any questions ... drop us a note here. If you want to call, the number at the Emerald Castle is 316-794-2347. If you leave us your number here, we'll try to get back to you. CoCo: An Affectionate History of the Tandy Color Computer is your story. We hope to hear from you soon. Please Hurry! We must have the first half of the book turned in to Falsoft by the end of June ... the last half by the end of July!!! Thanks! Dale and Esther Press !> #: 3423 S10/Tandy CoCo 11-May-90 22:33:04 Sb: #3403-#CoCo List Fm: Steve Wegert 76703,4255 To: Randy Wilson 71561,756 (X) Randy, I see you've spotted the typo with puuc vs pucc. That should fix you right up. Steve There is 1 Reply. #: 3436 S10/Tandy CoCo 12-May-90 20:11:02 Sb: #3423-#CoCo List Fm: Randy Wilson 71561,756 To: Steve Wegert 76703,4255 (X) Steve, Yah, it's dibbling in, now. Looks like it took about twelve hours to get setup once I got the right address. Any comment on leaving my mailbox unattended with the list enabled? Randy There are 2 Replies. #: 3438 S10/Tandy CoCo 12-May-90 20:18:43 Sb: #3436-#CoCo List Fm: Kevin Darling (UG Pres) 76703,4227 To: Randy Wilson 71561,756 (X) Randy - if I'm going to be gone for more than a couple of days, I always resign from the list, and sign back up when i return. But I'd ask the list about it, as they may have implemented some form of protection lately. Maybe not. Sometimes there are 20 msgs a day, and since your mailbox can only hold 50, two days or so unattended will cause problems. I have a thought tho. Maybe someone could AR up each week's mail and post it here? Maybe two files, swapped every other week, or something. Hafta think about it. There is 1 Reply. #: 3483 S10/Tandy CoCo 14-May-90 08:54:30 Sb: #3438-#CoCo List Fm: Bill Dickhaus 70325,523 To: Kevin Darling (UG Pres) 76703,4227 (X) Kevin, One other option is to request the latest weekly message archive file from the list. Mosts lists maintain files, on a weekly basis, of all messages posted to the list. It means you'd be a week or so behind, and requires sending a request for the file each week, but would cut down on the number of messages. Now that the CompuServe Mail file size limit is fairly large (not sure of exactly how big) a weeks worth of messages shouldn't go past any file size limitations. Bill There is 1 Reply. #: 3486 S10/Tandy CoCo 14-May-90 09:51:52 Sb: #3483-CoCo List Fm: Steve Wegert 76703,4255 To: Bill Dickhaus 70325,523 (X) Bill, 50 is the magic number of messages the Mailbox will hold before barfing. And that's 50 messages regardless of size (so long as yu don't exceed the size limits of 50K on ASCII or 512K on binaries). Kind of neat thinking you can have 50 512K binary files waiting for you when you log in! :-) Steve #: 3455 S10/Tandy CoCo 13-May-90 12:07:47 Sb: #3436-CoCo List Fm: Steve Wegert 76703,4255 To: Randy Wilson 71561,756 (X) > Any comment on leaving my mailbox unattended ... Yeah .... don't. :-) You'll risk the wrath of the list. The traffic has, at times, been heavy enough that a CIS mailbox will fill to overflowing in about 2 days. At that point, mail will start to bounce back to the list ... and to every other members's mailbox. Not something you'd want your name associated with. If you're gonna be unable to check in at least every other day, I'd unsubscribe. You can pick up what you've missed (if you like) from the archives. Steve #: 3424 S10/Tandy CoCo 11-May-90 22:34:54 Sb: #3409-#CoCo List Fm: Steve Wegert 76703,4255 To: Zack Sessions 76407,1524 (X) HEY ZACK! Whacha shouting for? :-) I took a peek at the file looking for occurances of puuc and came up empty. There was a typo of this type when I first uploaded the file but that was fixed long ago (mod date on the file tells me in January). Can you point me to a line? Steve There are 2 Replies. #: 3428 S10/Tandy CoCo 12-May-90 09:19:51 Sb: #3424-#CoCo List Fm: Zack Sessions 76407,1524 To: Steve Wegert 76703,4255 (X) Apparently the person with the problem downloaded the file prior to it being fixed? I had heard of others with the same problem, so I thought the file may not have been fixed yet. Sorry for the shout. ;-) Zack There is 1 Reply. #: 3430 S10/Tandy CoCo 12-May-90 10:58:35 Sb: #3428-#CoCo List Fm: Steve Wegert 76703,4255 To: Zack Sessions 76407,1524 (X) Just razzin' you a bit, Zack .... most likely you're correct in that he had an old copy of the file. Steve There is 1 Reply. #: 3458 S10/Tandy CoCo 13-May-90 13:24:32 Sb: #3430-CoCo List Fm: Zack Sessions 76407,1524 To: Steve Wegert 76703,4255 (X) I gotcha, Steve! #: 3437 S10/Tandy CoCo 12-May-90 20:11:19 Sb: #3424-#CoCo List Fm: Randy Wilson 71561,756 To: Steve Wegert 76703,4255 (X) Steve, Last mod date on my cclist.txt file is 89/12/29. Guess I got the old copy. Randy There is 1 Reply. #: 3456 S10/Tandy CoCo 13-May-90 12:08:25 Sb: #3437-CoCo List Fm: Steve Wegert 76703,4255 To: Randy Wilson 71561,756 (X) Ahh .. that explains the mystery, Randy. Sorry 'bout the confusion. Steve #: 3425 S10/Tandy CoCo 12-May-90 07:21:18 Sb: #3421-C arrays Fm: Bruce MacKenzie 71725,376 To: Zack Sessions 76407,1524 (X) OK, I got it Zack. Thanks. #: 3530 S10/Tandy CoCo 16-May-90 18:07:35 Sb: #3419-C arrays Fm: Bruce MacKenzie 71725,376 To: Bruce MacKenzie 71725,376 (X) Last call for cgfx.l erratia to be included in the LIB file. cf. messages 3419 and 3421. #: 3426 S10/Tandy CoCo 12-May-90 08:26:16 Sb: #3407-C arrays Fm: Bill Dickhaus 70325,523 To: Bruce MacKenzie 71725,376 (X) Wow! And I thought what I wanted to do was complicated! Now I feel better, but even more confused than I was before. Bill #: 3435 S10/Tandy CoCo 12-May-90 16:44:28 Sb: #3395-#Pictures Needed Fm: Paul K. Ward 73477,2004 To: Dale L. Puckett 71446,736 (X) Dale, There are two customers of mine that use CoCos in unique applications. One customer works at an internationally famous PR firm, where he uses the CoCo on a TV monitor so that his Big BUck clients can keep track of which audio/video studio is being used at what time. The other client uses the CoCo 3 and Basic09 to produce printing quotes very rapidly. He keeps a competitive edge with prices and with quick repsonses. I'll see if I can get them to send photos! Paul There is 1 Reply. #: 3552 S10/Tandy CoCo 17-May-90 01:03:35 Sb: #3435-Pictures Needed Fm: Dale L. Puckett 71446,736 To: Paul K. Ward 73477,2004 Paul, Thanks, How about the names and phone numbers. Any chance? Sounds worth a mention. Dale #: 3439 S10/Tandy CoCo 12-May-90 22:13:08 Sb: #RS-DOS Shell Fm: Joseph Cheek 76264,142 To: all Has anyone written an RS-DOS shell (RS-DOS, the file-system transfer program, not the operating system)? If not, I am planning on writing one. Thanx. There is 1 Reply. #: 3447 S10/Tandy CoCo 13-May-90 09:28:26 Sb: #3439-#RS-DOS Shell Fm: Dan Robins 73007,2473 To: Joseph Cheek 76264,142 (X) Joseph, Check out the program RSDOS.AR in Lib 10. It runs under OS9, and will transfer back and forth, files between OS9 and RS-DOS files. Dan There is 1 Reply. #: 3487 S10/Tandy CoCo 14-May-90 16:23:21 Sb: #3447-RS-DOS Shell Fm: Joseph Cheek 76264,142 To: Dan Robins 73007,2473 (X) No, no, no, I already have RSDOS. What I am talking about is a SHELL... ie, a friendly little GUI shell that does all the dirty work for you... you know, click on a few icons, input a name or two, click on an OK button, and pop! you see a directory of an RS-DOS disk, or transfer a file, etc. That's what I mean. Looks like I'll write one. #: 3441 S10/Tandy CoCo 13-May-90 01:07:26 Sb: #c-array initialization Fm: Bob van der Poel 76510,2203 To: all Okay, time for my next "innocent 'C' question". I would like to initialize an array of pointers so that each pointer points to an array of values. For example, I can get the correct results by doing; char data[][3]={ {1,2,3}, {.....} But this seems to be wasteful if the data are all constants. There is no need for it to be transfered from the program area to the data area. I thought I could do something like char *data[][4]={} But of course, this sets up a double array of pointers. Not what I want. I simply want a pointer to data[0][0], a second pointer to data[1][0], etc. Heck, I'd even settle for a single dimensioned array with a pointer pointing to the start of the whole mess. What I can't figure is how to define the data. It can be done with strings...but what about values? There is 1 Reply. #: 3445 S10/Tandy CoCo 13-May-90 09:25:03 Sb: #3441-#c-array initialization Fm: Bruce MacKenzie 71725,376 To: Bob van der Poel 76510,2203 (X) If I understand you correctly, what you're trying to do is set up a large look up table of constants and you don't want to waste run time and/or memory by setting it up in data memory. One way to do this is to employ a stand alone data module which you access via modlink(). This requires a separate program to generate the memory module which you then merge with your object program. I uploaded a file, DATGEN.AR, to LIB 3 a few months back showing how this can be done. Have a look at this file and see if you can apply it to your problem. There is 1 Reply. #: 3505 S10/Tandy CoCo 15-May-90 01:03:53 Sb: #3445-#c-array initialization Fm: Bob van der Poel 76510,2203 To: Bruce MacKenzie 71725,376 (X) Bruce, Yes, you're right on in what I am trying to do. I had considered data modules before, but with the richness of C it seemed that there had to a simpler way. After all, char *foo="this is text" does NOT force "this is a text" to the data area. All I need to do is to substitute integer values for the string. But how? BTW, I want to use this data to intialize some GET/PUT buffers. I guess another way to do it would be to have the data in a file and send that to the buffers, but having it all in the program makes things nice and clean. I got your datgen file. I've not had a change to digest it yet, but it seems quite useful. You do mention somewhere that data modules should be treated as ROM. Hmmm? I recall in "The Rainbow OS9 ...." that they used data modules to store variable data. Also, they can be used for interprocess communication. Don't really see why not. Comments? There is 1 Reply. #: 3512 S10/Tandy CoCo 15-May-90 17:56:15 Sb: #3505-#c-array initialization Fm: Bruce MacKenzie 71725,376 To: Bob van der Poel 76510,2203 (X) String literals are the only type of data that are left in the program area. I believe the ANSI enhancement of C adds the specifier 'const' which would allow other types of data to be handled in that way. With standard C everything is copied into the data area. Reading the data in from a disk file has much to say for it. If all you're doing is plugging it once into GP buffers there's no reason to have a second copy of the data in memory at all. The down side is that you always have to worry that the data file is where the program expects it to be. It is cleaner to have it loaded in along with the program. If you have enough memory left over in your last 8K block of program memory for a data module then you don't even waste any memory. You can use a data module as variable memory as you described. You just have to be sure to update the module's CRC if you want OS9 to link to it again. In my opinion, however, this is bad practice since modifying a data module makes the program non-reentrant. Say a program modifies a data module and you then go to another window and start the same program as a second process. If the first process didn't update the CRC, the second process can't link to the data module. If the CRC has been updated, the second process begins with a modified data module rather than with it de-novo. If both processes continue to modify the data module to their own ends chaos can ensue. There is 1 Reply. #: 3513 S10/Tandy CoCo 15-May-90 18:10:15 Sb: #3512-#c-array initialization Fm: Kevin Darling (UG Pres) 76703,4227 To: Bruce MacKenzie 71725,376 (X) Once a module has been loaded, the CRC isn't checked again. So the only time you'd have to update the CRC would be just before saving out the data module (or before loading it from disk again)... if such need arises. Just wanted to throw that in, in case it changes your approach to using data modules. - kev There are 2 Replies. #: 3514 S10/Tandy CoCo 15-May-90 19:41:07 Sb: #3513-#c-array initialization Fm: Bruce MacKenzie 71725,376 To: Kevin Darling (UG Pres) 76703,4227 (X) Kevin, The CRC is checked if a program requests a link to the module as with a C modlink() call. This would occur if a second incarnation of the program were started up as a new process. There is 1 Reply. #: 3519 S10/Tandy CoCo 15-May-90 20:53:52 Sb: #3514-c-array initialization Fm: Kevin Darling (UG Pres) 76703,4227 To: Bruce MacKenzie 71725,376 (X) Really? Modlink() checks a module's CRC? I wonder why. Sure about that? curious - kev #: 3515 S10/Tandy CoCo 15-May-90 20:18:15 Sb: #3513-#c-array initialization Fm: Bruce MacKenzie 71725,376 To: Kevin Darling (UG Pres) 76703,4227 (X) Woops, I take that back. I checked it out and you're right, OS9 will link to a module with a bad CRC. You learn something new every day. There is 1 Reply. #: 3520 S10/Tandy CoCo 15-May-90 20:55:49 Sb: #3515-c-array initialization Fm: Kevin Darling (UG Pres) 76703,4227 To: Bruce MacKenzie 71725,376 (X) Ooops. Okay, disregard my last question , too. Once a module is in memory, os9 (and everyone else) assumes it must be good. CRC checks take a long time, and the main reason for preloading is for speed. Glad to hear modlink() doesn't recheck! thx - kev #: 3450 S10/Tandy CoCo 13-May-90 11:01:48 Sb: #3324-#New OS9 ? Fm: TONY CAPPELLINI 76370,2104 To: Steve Wegert 76703,4255 (X) Sounds good to me, but when can we expect this new re-write for LII ? tony There is 1 Reply. #: 3457 S10/Tandy CoCo 13-May-90 12:10:56 Sb: #3450-New OS9 ? Fm: Steve Wegert 76703,4255 To: TONY CAPPELLINI 76370,2104 I've been wondering the same thing myself. At this time, we can only keep our ear to the ground. Steve #: 3451 S10/Tandy CoCo 13-May-90 11:19:03 Sb: #3335-#Fastgraf / Bounce.ar Fm: TONY CAPPELLINI 76370,2104 To: Kevin Darling (UG Pres) 76703,4227 (X) Hi kevin, No, I'm not using the level 1 basic09, I didn't start using os-9 until LII came along. But I still can appreciate all the work that you and the others have put in to make os-9 a better environment. I can't imagine what using os-9 without windows (/term only, and 32 characters at that) would be like. Talk about an upgrade ! If I don't think I am running out of memory because when I installed it on my friends' system, we started it up just like the .doc file said to. The only difference between our systems )as far as I can remember) is that I have a Disto 512k ramdisk and clock and printer card. My friend is using a B&B host adapter and cllock. I also have the (original lock up prone) B&B host adapter. Down on the software level, that means I have a different desciptor and drive for my printer and clock, but I really don't think that has anything to do with my problem. My system has had a number of wierd unexplainable problems that fade in and out. I tried resolving them to a software problem because it only happened under os9. But one problem finally showed up under rsdos. Anyway I am in the process of re-flowing all the solder joints on that cc3. I bought a new one last week since they were on sale foe $129 (still too high), and Tandy said they would be dropping the cocos. This one doesn't have the sparklie problem ! Speeking of the sparklie problem, when you install the disto 1 meg board, do you actually get more SYSTEM memory as well. Several times I have run out of memory, but by using smap pmap and some other programs, it looked as I was out of system space, not user memory. Do the patches to os9 for the upgrade take care of this ? By the way, when can we expect to see the new os9 for the coco 3 ???? See ya soon. TC There is 1 Reply. #: 3464 S10/Tandy CoCo 13-May-90 16:50:30 Sb: #3451-Fastgraf / Bounce.ar Fm: Kevin Darling (UG Pres) 76703,4227 To: TONY CAPPELLINI 76370,2104 Nope, nothing cures the out of system-space problem. We're off-and-on looking into moving more of the drivers/etc into other maps, the way grfdrv is now. That's about all that can be done. Hmmm... well, and/or moving process descriptors into other maps, which it's rumored someone did on his L-II system years back. Never knew who that was, tho. #: 3459 S10/Tandy CoCo 13-May-90 14:33:03 Sb: #IRQ hack Fm: LUTE MULLENIX 70721,2230 To: sysop (X) Hi: Where can I find the stuff on the IRQ patch for the RS232 pak? A friend wants to get his working. His system is locking up under OS9. >Lute< There is 1 Reply. #: 3469 S10/Tandy CoCo 13-May-90 20:50:51 Sb: #3459-IRQ hack Fm: Steve Wegert 76703,4255 To: LUTE MULLENIX 70721,2230 (X) Lute, Take a look at the file IRQHAK.TXT in LIB 10. That should get you going. Steve #: 3468 S10/Tandy CoCo 13-May-90 20:30:02 Sb: #3376-One Meg Tuning Fm: Robert DeBolt 76417,2225 To: Kevin Darling (UG Pres) 76703,4227 (X) Kev, Thanks for the info. My friend soldered in a couple of 150s which nets out to 46 ohms. Haven't had any trouble since. Except, max9 still crashes the system. Bob #: 3500 S10/Tandy CoCo 14-May-90 22:07:55 Sb: #3376-One Meg Tuning Fm: Mike Knudsen 72467,1111 To: Kevin Darling (UG Pres) 76703,4227 (X) I think you get much better luck at 1 Meg when you use a newer-version GIME chip. I had already upgraded mine, and had no trouble at all with the 1 Meg. However, I left my Hemphill 512 board's 100-ohm resistor in parallel with R22, rather than shorting it out as per the manual. Also I left the two little capacitors in there too. Maybe what's good for your current 512K board is best for the 1 Meg. PS: Users with jittery mouse curosrs should take care not to route the mouse "tail" near the monitor. Same goes for disk ribbon cables. #: 3492 S10/Tandy CoCo 14-May-90 20:24:13 Sb: #irq hack Fm: LUTE MULLENIX 70721,2230 To: 76625,2273 (X) Bruce: I have a question for you. In the November 89 Rainbow Marty Goodman did an article on the *CART interrupt. He mentions your name. Well I did the fix on my machine, and a friend of mine would like me to do a hack on his machine. The only snag is that he still uses ROM packs with his MPI. So what I was wondering, is... Could I just solder the Schottky diode on R2, run the wire over to a jack installed in the Coco's case. Solder a wire on pin 8 of slot 1 of the MPI, put a plug on it and plug them togeather? That way it shouldn't interfear with the other slots, you have a direct IRQ line, and if you need to remove the MPI you just unplug. Also if you change RS232 packs, you don't have to break into the new one for your patch. Will it work? >Lute< There is 1 Reply. #: 3503 S10/Tandy CoCo 14-May-90 23:41:15 Sb: #3492-irq hack Fm: Bruce Isted (UG VP) 76625,2273 To: LUTE MULLENIX 70721,2230 (X) ~ Lute, It sounds like it should work. So long as you're careful, I don't see how it could do any harm... so give it a try. Bruce PS: This reply is in reference to your Schottky diode to R2 (in the CoCo 3), wire to jack, jumper to jack on MPI, etc... question. #: 3558 S10/Tandy CoCo 17-May-90 16:44:33 Sb: The Dungeon Depths Fm: Floyd Resler 72500,2572 To: All I forgot to include the font file in my Dungeon Depths archive. If you have experienced an error #216, then downloading this file will correct it. It's called gothic.fnt. Sorry about the incovenience. #: 3560 S10/Tandy CoCo 17-May-90 20:27:25 Sb: 2nd Hard Drive Help Fm: JC Hoit 73127,2213 To: all HELP! I am trying to put a second hard drive on my system and the system isn't recognising the two drives separatly. (Both LED's come on and neither one knows what to do.) I have the /h0 and /h1 set up. Seems that I don't know what I am doing with the hardware configuration. The equipment: B&B interface, WD1002S-WX2 controller, /H0 is a Miniscribe 3425, /H1 is a Seagate 213. Is there something that has to be done with the 8-pin jumper on the Seagate? How about the controller? Is there something I need to do with it? I am sure I have the data cables correct. Suggestion anyone? JCH Press !> #: 3561 S10/Tandy CoCo 17-May-90 22:22:07 Sb: #3560-#2nd Hard Drive Help Fm: Zack Sessions 76407,1524 To: JC Hoit 73127,2213 (X) Nothing needs to be done with the controller, except that to make sure that you have the data cables plugged onto the right headers. The drives do have a jumper which needs to be moved, plus (and this may be key) there is a "terminating resistor" mounted on each drive. This need to be removed from all drives except the LAST drive, in your case, /h1. Zack There is 1 Reply. #: 3566 S10/Tandy CoCo 18-May-90 16:53:14 Sb: #3561-2nd Hard Drive Help Fm: JC Hoit 73127,2213 To: Zack Sessions 76407,1524 I do have the data cables plugged in proper. I removed the terminating resistor from /h0 with no noticable change. However, that jumper business on the drives is what has me confused. I have no tech manual on these things and don't know where the jumper needs to be. I have moved it to various locations with no success. The drive that I need info on is the Seagate 213. John #: 3567 S10/Tandy CoCo 18-May-90 17:36:51 Sb: #Break key Fm: PHIL SCHERER 71211,2545 To: ALL Does anyone know how to trap the break key in a Basic09 procedure?? There is 1 Reply. #: 3568 S10/Tandy CoCo 18-May-90 17:54:52 Sb: #3567-Break key Fm: Pete Lyall 76703,4230 To: PHIL SCHERER 71211,2545 Phil - I believe you could set up an ON ERROR routine to catch it (either error 2 or 3)... Or, you could disable it altogether using TMODE, or more avdenturously using SYSCALL. Pete #: 3569 S10/Tandy CoCo 18-May-90 17:57:58 Sb: Dungeon Fm: Hugo Bueno 71211,3662 To: Floyd Resler Floyd, I can't get your dungeon program to work. It gets up to the symbols screit aborts when I press the joystick button. Also, you have RunB merged in there{_, I don't think you're allowed to do that! Hugo #: 3571 S10/Tandy CoCo 18-May-90 19:14:50 Sb: #3567-#Break key Fm: Kevin Darling (UG Pres) 76703,4227 To: PHIL SCHERER 71211,2545 (X) Phil - as Pete said, an ON ERROR command will catch the Break key... but only once the program is packed. Otherwise basic09 assumes you're stopping the program run, which makes sense during testing. There is 1 Reply. #: 3627 S10/Tandy CoCo 20-May-90 14:00:55 Sb: #3571-#Break key Fm: PHIL SCHERER 71211,2545 To: Kevin Darling (UG Pres) 76703,4227 (X) Thanks Kev--By the way how are things going for MM1 and Tomcat?? There is 1 Reply. #: 3631 S10/Tandy CoCo 20-May-90 17:04:35 Sb: #3627-Break key Fm: Kevin Darling (UG Pres) 76703,4227 To: PHIL SCHERER 71211,2545 (X) They're both going okay, Phil. Slowly but surely . #: 3626 S10/Tandy CoCo 20-May-90 13:59:09 Sb: #3568-#Break key Fm: PHIL SCHERER 71211,2545 To: Pete Lyall 76703,4230 (X) Thanks for the reply Pete!! There is 1 Reply. #: 3644 S10/Tandy CoCo 21-May-90 10:19:04 Sb: #3626-Break key Fm: Pete Lyall 76703,4230 To: PHIL SCHERER 71211,2545 (X) No problem Phil... let us know if you run into any obstacles. Pete #: 3573 S10/Tandy CoCo 18-May-90 21:14:13 Sb: #3566-#2nd Hard Drive Help Fm: Zack Sessions 76407,1524 To: JC Hoit 73127,2213 (X) You had to remove the terminating resistor, but you are right, you also need to jumper it right also. I don't have a 213, I have a 225 and a 21-1, and they both have a small jumper pad at the back. The come jumpered as drive 0, so I just moved the jumper on the drive which was going to be /h1 over one position. Zack There is 1 Reply. #: 3575 S10/Tandy CoCo 18-May-90 21:58:04 Sb: #3573-#2nd Hard Drive Help Fm: JC Hoit 73127,2213 To: Zack Sessions 76407,1524 (X) Something is still amiss. I did move that jumper over one spot. Played all evening with different cable settings and jumper settings and whether the terminating resistor was in /h0 or not. No success. I am beginning to think that this controller is just what I want. It is a larger WD1002S-WX2. Maybe it isn't 100% compatable. Only 97.3%. JCH There is 1 Reply. #: 3579 S10/Tandy CoCo 18-May-90 22:40:42 Sb: #3575-2nd Hard Drive Help Fm: Zack Sessions 76407,1524 To: JC Hoit 73127,2213 (X) Yeah, that might be it. WD controllers can be had for $50-$60. Good luck! Zack #: 3574 S10/Tandy CoCo 18-May-90 21:23:12 Sb: #3566-#2nd Hard Drive Help Fm: Mark Griffith 76070,41 To: JC Hoit 73127,2213 (X) JC, On the ST-213 drive there is a set of jumpers located next to the 34 pin edge card connector. The two pins (one on top of the other) right next to the connector should already have a jumper between them. This sets the drive up as drive 0. What you need to do is move that jumper one over to set it up as drive 1. As for the terminating resistors, it depends mostly on the controller and drive combination whether or not any are needed. About 6 or 7 years ago, most drive controllers and drives needed one to be there at the end of the "chain". Nowadays, most controller/drive combinations really don't care. The name "terminating" resistor is misleading, much the same as it is on SCSI busses. They're really nothing more than pull-up resistors to insure, get this, that the logic levels on the lines drop (yes, not rise) to 0. If you follow the advise that most people give, that you need at least one on the last drive, you can't go wrong. I've never seen a situation where having one caused problems...although I have seen situations where only one didn't work right and two were needed. BTW: Since you are going to have two hard drives, you might want to look into getting my hard disk backup program in DL9. It works pretty good as an automatic backup utility from the "main" drive to the second on. If you also have Pete's CRON utility, you can set it up to automatically do an incremental backup of your /h0 drive to /h1 in the middle of the night. It sure is nice to know all your work is backed up for you. Mark There is 1 Reply. #: 3576 S10/Tandy CoCo 18-May-90 22:02:58 Sb: #3574-2nd Hard Drive Help Fm: JC Hoit 73127,2213 To: Mark Griffith 76070,41 (X) Hi, Mark. The Miniscribe (/h0) barfs all over the place when I take the resistor out. And it isn't changing my success one way or the other. I did move the jumper over one. As I said in the message to Zack, I am suspecting the controller being a little off beat. I am going to stop wasting my time on this one and locate one that B&B suggests. I will definitely try your HD utilities when I get this hardware straightened out. I spotted it earlier and it looked interesting. Thanx, JCH #: 3582 S10/Tandy CoCo 19-May-90 09:25:52 Sb: #3307-#KingQuest/H0? Fm: CRAIG WYNN 72125,466 To: Zack Sessions 76407,1524 (X) Terrific....I guess this takes care of the side 2 request that appear from time to time. Say I just picked up the Sub game that is on sale. Again I'am faced with figuring out how to get it to run from my hard drive. It appears it needs some patching. Are you familiar with this game as well? I've got "ded" to patch with. On "sub' its got a /d0 which I've tried changing to /h0 with ded but there seems to be more the needs to be done. I guess it needs to be run from a VGF screen right? thanks Craig There are 2 Replies. #: 3583 S10/Tandy CoCo 19-May-90 09:47:57 Sb: #3582-KingQuest/H0? Fm: Zack Sessions 76407,1524 To: CRAIG WYNN 72125,466 (X) Sub Battle Simulator does indeed require a VDG window to run in. I don't remember having to do any patching however. It's disk structure is a little strange, though. Exactly what kind of problem are you haveing? Zack #: 3589 S10/Tandy CoCo 19-May-90 11:51:11 Sb: #3582-#KingQuest/H0? Fm: Jim Peasley 72726,1153 To: CRAIG WYNN 72125,466 (X) ~ Craig; There's a file called GAMES.PAT in one of the libs with Kev's PPN on it that tells how to run it (assuming you're talking about EPYX's Sub Battle). Basically, the file just says to use the commands from side 2 and ignore t2e ones from side 1. Here's an edited script that I use for starting most of the games on my HD: display c echo echo * Game selection echo * ---- --------echo * echo * 1. King's Quest III echo * echo * 2. Sub Battle Simulation echo * prompt * Select : var.0 if %0=1 echo Starting King's Quest III... echo echo Press (Clear) to play... xmode /w type=1;display c >/w chd /dd/games/kqiii chx /dd/games/kqiii/cmds (sierra <>>>/w;xmode /w type=80)& else if %0=2 echo Starting Sub Battle... echo echo Press (Clear) to play... xmode /w type=1;display c >/w chd /dd/games chx /dd/games/sub/cmds (ex sub <>>>/w;xmode /w type=80)& endif clrif See if this'll do it for you. ...Jim There is 1 Reply. #: 3591 S10/Tandy CoCo 19-May-90 11:58:04 Sb: #3589-KingQuest/H0? Fm: Jim Peasley 72726,1153 To: Jim Peasley 72726,1153 (X) ~ Craig; Ooops, shoulda stored it unformatted. display c echo echo * Game selection echo * ---- ------- - echo * echo * 1. King's Quest III echo * echo * 2. Sub Battle Simulation echo * prompt * Select : var.0 if %0=1 echo Starting King's Quest III... echo echo Press (Clear) to play... xmode /w type=1;display c >/w chd /dd/games/kqiii chx /dd/games/kqiii/cmds (sierra <>>>/w;xmode /w type=80)& else if %0=2 echo Starting Sub Battle... echo echo Press (Clear) to play... xmode /w type=1;display c >/w chd /dd/games chx /dd/games/sub/cmds (ex sub <>>>/w;xmode /w type=80)& endif clrif That should be better. ...Jim #: 3593 S10/Tandy CoCo 19-May-90 12:32:20 Sb: #3417-C arrays Fm: James Jones 76257,562 To: Jeff Dege 76426,211 (X) That's for darned sure--especially what with X3J11 going for "value preserving" widening, while Harbison and Steele (and evidently various existing compilers) going for "unsigned preserving" widening! #: 3601 S10/Tandy CoCo 19-May-90 13:08:31 Sb: #3464-#Fastgraf / Bounce.ar Fm: TONY CAPPELLINI 76370,2104 To: Kevin Darling (UG Pres) 76703,4227 (X) Thanx for the info. But if I can't format a floppy in a 512k system with my applications running, why would I (or anyone else) want to add another 512 and still not be able to format a floppy, due to the fact that the system area was depleted ?? My hats off to you, Tony, and all others for making the 512k add on possible, but I can't see what good it is at the moment. Tony There is 1 Reply. #: 3611 S10/Tandy CoCo 19-May-90 23:00:47 Sb: #3601-Fastgraf / Bounce.ar Fm: Kevin Darling (UG Pres) 76703,4227 To: TONY CAPPELLINI 76370,2104 (X) Tony, For a long time now, I've simply formatted floppies when I cranked up the system, or sometimes killed off a few shells until I could do a format. But that's rare, because I mostly use the ramdisk and harddisk. The extra 512K, while not helping with the format thing, does allow you to open far more gfx windows and preload LOTS of program modules... besides having a nice-sized ramdisk if you wish. This makes everything flow a lot easier. best - kev #: 3603 S10/Tandy CoCo 19-May-90 13:35:11 Sb: #Window Problems Fm: TONY CAPPELLINI 76370,2104 To: LUTE MULLENIX 70721,2230 (X) I am trying to modify my startup file so that it will start up some windows before I start up multi-vue. This is so I can kill mult-vue, and still have windows going. After I did the following iniz /w7 display 1b21 /w7 shell i=/w7& my system hung up every time it executed the display 1b21 line. When I start up my mv window I do the same thing, display 1b21 /w1 so I can see MV start up, right after the window is created. Can anybody help me with this. My goal is to create several windows before MV starts up, and be able to jump (display 1b21) to each window before or after I start a shell in them (doesn't matter to me) just so I can see them being created, and then jump into my MV window and continue as always. I can never seem to create windows easily. The info in the Rainbow Guide to Level II doesn't seem to work without errors. Thanx for the help Tony There are 2 Replies. #: 3608 S10/Tandy CoCo 19-May-90 21:38:57 Sb: #3603-Window Problems Fm: LUTE MULLENIX 70721,2230 To: TONY CAPPELLINI 76370,2104 (X) Tony: I'm not really the guy to ask on this one, I use MultiVue very little. When I do, I just let it start up off the disk, iniz windows as I use them. On my LII system disk, I start up /term, /w1, /w2. This is all I ever use, so I don't use up memory by keeping the other discriptors in memory. For them I just use the "wcreate" wcreate /w1 -s=7 0 0 80 24 9 1 1 Or what ever, then shell i=/w1&. From what I understand, iniz should do about the same thing, except give you the default windows. You should maybe ask Kevin Darling, or Pete Lyall about this, I do a little hacking, and patching, but let guys like them tell me what to do. >Lute< #: 3622 S10/Tandy CoCo 20-May-90 09:04:09 Sb: #3603-#Window Problems Fm: Bruce MacKenzie 71725,376 To: TONY CAPPELLINI 76370,2104 You need to do a DWSet to get your windows up and running. Try: iniz w1 display 1b 20 7 0 0 50 18 0 1 1 >/w1 shell i=/w1& Do not try to select the new window in the startup file as this will cause the procedure to hang. I think this is because the select causes the original shell to loose the input file when standard input is reset to the keyboard of the new window There is 1 Reply. #: 3638 S10/Tandy CoCo 20-May-90 23:12:26 Sb: #3622-#Window Problems Fm: Mark Griffith 76070,41 To: Bruce MacKenzie 71725,376 (X) Bruce, We are trying (have been for a few years now) to get users to not iniz devices using Level II, especially windows. The reason is if they later close the window (stop all processes running on it) and they don't deiniz it, the memory for that window is kept by the system. This could cause some real debugging headaches later on if they run out of memory. In your example (shown below): iniz w1 display 1b 20 7 0 0 50 18 0 1 1 >/w1 shell i=/w1& the user is stuck with an immortal shell on /w1 and the window memory is locked in until they specifically kill the shell and deiniz the window device. Your example is fine tho, in that to send the display codes to the window and have them "take", it either has to be iniz'ed or a path has to be opened to that device. A better way would be something like this: (display 1b 20 2 0 0 50 18 0 2 2;ex shell)<>>>/w& This command starts a shell on the next available window, does the DWSET, and then starts another shell. Once the second shell is started, the first one dies. So, a path is be opened on the device the whole time and the DWSET works. As an added bonus, when the shell on that window dies, the window goes away and the memory is returned. If you wanted to, you can set this command line up in your execution directory and call it "window" or something like that. Then all you need to do is enter that command and the window is created. You can also do this to create different types of windows, and call the commands "g80" or "g40" to make 80 and 40 columns graphics windows. Mark There are 2 Replies. #: 3641 S10/Tandy CoCo 21-May-90 00:12:31 Sb: #3638-Window Problems Fm: Kevin Darling (UG Pres) 76703,4227 To: Mark Griffith 76070,41 (X) I'm glad you brought that up (not hardcoding windows). Meant to do it. thx! #: 3656 S10/Tandy CoCo 21-May-90 17:23:51 Sb: #3638-#Window Problems Fm: Bruce MacKenzie 71725,376 To: Mark Griffith 76070,41 (X) Good point about the iniz. If the window is iniz'd when you direct output to it anyway, there's no need to do it explicitly. Tony was trying to set up a shell in a window from the MV startup file so an immortal shell is appropriate I think. Personally, I've set up an AIF to call up a shell in an 80 col window. That way I'm not locked into having a shell up if I don't need it. While we're on the subject of deiniz, do you have any idea why it's so hard to get rid of a ram disk (the one from the developement pac)? It usually takes a number of deiniz's to get the memory back. To ease things I call a procedure file having around 10 deiniz's. This does the job but occassionally will cause the system to hang. There are 2 Replies. #: 3659 S10/Tandy CoCo 21-May-90 18:53:55 Sb: #3656-#Window Problems Fm: Kevin Darling (UG Pres) 76703,4227 To: Bruce MacKenzie 71725,376 (X) Bruce - each time you use "/r0" in a pathname the "User Count" (see output of the DDir utility) goes up. A deiniz takes it down by one, so you gotta do it until you hit zero users. Oops. dinnertime. later- kev There is 1 Reply. #: 3703 S10/Tandy CoCo 22-May-90 17:45:21 Sb: #3659-#Window Problems Fm: Bruce MacKenzie 71725,376 To: Kevin Darling (UG Pres) 76703,4227 (X) User count? Is this the same as the link count? There is 1 Reply. #: 3704 S10/Tandy CoCo 22-May-90 17:54:54 Sb: #3703-Window Problems Fm: Kevin Darling (UG Pres) 76703,4227 To: Bruce MacKenzie 71725,376 Bruce - no. Link count is what you see with an Mdir. That's the count of links to a module. The user count shown in Ddir (or Devs, if under OSK), is the count of "users" of a particular device. It goes up when a file is opened, down when a file is closed. However, at least under L-II it only goes upward (never down) when you do a CHD or CHX using a device's name. This count is used to figure out when a device's init/terminate routines should be called (that is, on first use, and when last use ends). The "iniz" and "deiniz" commands artificially inc/dec this count, just as "link" and "unlink" do for modules. #: 3664 S10/Tandy CoCo 21-May-90 22:03:08 Sb: #3656-Window Problems Fm: Mark Griffith 76070,41 To: Bruce MacKenzie 71725,376 (X) Bruce, You could do an immortal shell in the command line example I gave also. I think, tho, that you would have to redirect the output to standard out since you can't explicitly give the window device name. Something like ";ex shell i=/2"?? I never tried it. On unlinking the ramdisk....Kevin gave you the reason. There is a utility floating around someplace in the data libraries called "unload". All it does is repeatedly call unlink until an error occurs. This effectively unlinks any module in memory, no matter how many link counts there are. Mark #: 3606 S10/Tandy CoCo 19-May-90 19:47:22 Sb: #Dynastar Fm: Denise Tomlinson 71021,3274 To: all Can someone who's familar with Dynastar tell me what is wrong? I can't print a file to my /p When DF is called, it gives a "error in printing detected, press ESC" I have searched the manual for a clue but don't see it. My printer is set up for autolinefeed. I have a Gemini SG10, out of the bit port at 9600 baud I can exit DS and at the os9 prompt, list a file to the printer with no problem, so the hardware seems to be correct. Thanks, Denise There is 1 Reply. #: 3648 S10/Tandy CoCo 21-May-90 10:34:36 Sb: #3606-Dynastar Fm: Pete Lyall 76703,4230 To: Denise Tomlinson 71021,3274 Denise - I don't know which version of DS/DF you're using ... I use an early version that was unbelieveably enough done in interpreted Pascal. A few prelim questions first? o - Does the printer work other than with DF? o - Has DF ever worked? o - Are you running one of the newer versions of DS/DF (written in C)? o - What else are you running at the same time? o - Try INIZ'ing your printer from your startup file also.. Pete #: 3609 S10/Tandy CoCo 19-May-90 21:40:36 Sb: #Shell+ Fm: LUTE MULLENIX 70721,2230 To: 76703,4230 (X) Pete, Where can I find Shell+, and what will it do for me? >Lute< There are 2 Replies. #: 3643 S10/Tandy CoCo 21-May-90 10:18:32 Sb: #3609-Shell+ Fm: Pete Lyall 76703,4230 To: LUTE MULLENIX 70721,2230 (X) Lute, I believe shell+ is here in either DL9 or DL10. It may be in Ipatch format (i.e. patches to the original shell), in which case you'll also need the 'PATCH.AR' programs in either DL9 or 10. Pete #: 3649 S10/Tandy CoCo 21-May-90 10:37:06 Sb: #3609-Shell+ Fm: Pete Lyall 76703,4230 To: LUTE MULLENIX 70721,2230 (X) Lute - Shell plus also adds some enhanced scripting capabilities (very handy), as well as separate CMD directories (an execution path option), as well as a host of other conveniences that should have been in there from the beginning. A neat tool. Wish I could run it on the Gimix (it's unfortunately Coco3 specific)... Pete #: 3616 S10/Tandy CoCo 20-May-90 01:25:21 Sb: #Selecting windows Fm: TONY CAPPELLINI 76370,2104 To: Kevin Darling I have been trying to start up several windows outside of MV so I can kill MV without having to kill my other procs. In my startup file I tried the following iniz /w7 display 1b21 /w7 shell i=/w7 & I wanted to be able to see the windows as they are being created. I am using a similar method to start up my MV window and that works. But when I try the lines above, my system hangs when it executes the display 1b21 /w# from a script, and it is not needed on the cmd. line. Is this true ? Why did my startup file hang up on that line ? Thanx TC There is 1 Reply. #: 3633 S10/Tandy CoCo 20-May-90 20:18:35 Sb: #3616-Selecting windows Fm: Kevin Darling (UG Pres) 76703,4227 To: TONY CAPPELLINI 76370,2104 Tony, Yes, you're right about using the /w7 /w7; echo WINDOW SEVEN >/w7 display 1b21 /w8; echo WINDOW EIGHT >/w8 display 1b21 /w8& Notes: 1. After you Select another window, you have to make it your std input in order to cause another Select to take. 2. You can't have a program waiting on input from the Window you're Selecting or DeSelecting. Unless you want to wait your turn at input of course... and that's one reason your script might hang. So start programs last. 3. Your descriptors had better have been Wmode'd (WMODE.AR Lib 10) to default as separate windows, or you'll hang. Term, W1, W4 and W7 come that way stock. Or use wcreate or DWSET (1b20 etc etc) to set the window type on the fly). Keep asking until things get clearer. Glad to help if possible! - kev #: 3654 S10/Tandy CoCo 21-May-90 17:13:59 Sb: #Extra owend Fm: PHIL SCHERER 71211,2545 To: Pete Lyall 76703,4230 (X) I am listing the error trap section in a procedure I'm working on. The procedure is called by another procedure which has some overlay windows. In the for/next loop for error 2 and 3 it requires an additional "RUN gfx2("owend")" or the windows in the calling procedure are out of sinc. Does anyone have any idea why?? 9 errno=ERR RUN gfx2("owset",1,12,10,60,3,0,2) RUN gfx2("owset",1,10,9,60,3,2,0) RUN gfx2("curoff") IF errno=216 THEN PRINT PRINT TAB(2); "THERE IS NO FILE IN THE CURRENT DIRECTORY WITH THAT NAME" FOR x=1 TO 30000 NEXT x ENDIF IF errno=2 OR errno=3 THEN PRINT PRINT TAB(8); "TEXT FORMATTING INTERRUPTED" FOR x=1 TO 30000 NEXT x RUN gfx2("owend") ENDIF RUN gfx2("curon") RUN gfx2("owend") RUN gfx2("owend") 10 END There are 2 Replies. #: 3655 S10/Tandy CoCo 21-May-90 17:19:08 Sb: #3654-Extra owend Fm: Pete Lyall 76703,4230 To: PHIL SCHERER 71211,2545 Phil - Your message came out 'helped' by the CIS message formatter.... To save a message like that (tabular format), best bet is to type POST UNFORMATTED or 'su' when saving it. Also - a B09 guru I'm not.. Kev or others are a better choice, but I'll take a look at it when it comes back in from you... Pete #: 3663 S10/Tandy CoCo 21-May-90 20:31:26 Sb: #3654-Extra owend Fm: Kevin Darling (UG Pres) 76703,4227 To: PHIL SCHERER 71211,2545 Phil - I assume the program is packed when you run it. An error 2 or 3 could occur at any time while the program is running, but even so, I see no reason why the overlays wouldn't work right.... Well ok, yes. If you had an extra overlay open and hit BREAK, then your error routine needs to go back to the right spot. That's not easy to do, so how about this: keep a variable which you pass around called "overlaycount" or something. Maybe the error routine or your main routine could keep track that way? #: 3683 S10/Tandy CoCo 22-May-90 12:29:57 Sb: #3552-Pictures Needed Fm: Paul K. Ward 73477,2004 To: Dale L. Puckett 71446,736 Dale, Sorry to be out of touch so long .... Give me a call and I'll give you what you need. Paul #: 3716 S10/Tandy CoCo 22-May-90 22:48:21 Sb: #3633-#Selecting windows Fm: TONY CAPPELLINI 76370,2104 To: Kevin Darling (UG Pres) 76703,4227 (X) Kev I don't have problems starting window from Gshell (MV) except when I want to kill mv and keep some windows going, I get a msg saying that some procs are still running. Solution, start some windowsfrom my startup file. I now have 1 80*24, 2 80*12 (one over the other), and 2 40*24 windows come up when I boot up, in addition to MV. I wanted to get fancy and show off my coco3/os9 by jumping to each window after it was created and either display a picture or a have a msg or something else neat being displayed. But I can't get that damn display 1b21 to work. Keith Alphonso gave me some insight on how to get around this, but I think I left it at my old residence! Anyway, what does wmode do ? Do I need it. I seem to be able to create windows with wcreate ok, as well as some of the utilities that Keith sells. I'm pretty sure I was able to do this many moons ago when I was only into os9 lII about a year or so (yeah, like I'm a real veteran now, right !), but it eludes me again. I assume that the 1b20's accomplish the same thing as wcreate ???? I wish I could use my coco3 at work instead of a PC. Just think, I could have windows (or a form of them) for about $200, and segment offsets to boot! What a deal. Can't see how Intel ever swayed the industry with that knind of architecture. TC There is 1 Reply. #: 3729 S10/Tandy CoCo 23-May-90 00:29:33 Sb: #3716-Selecting windows Fm: Kevin Darling (UG Pres) 76703,4227 To: TONY CAPPELLINI 76370,2104 Tony, Right, 1b20 xx's do the same thing as wcreate does (altho wcreate also iniz's the window I think). Wmode lets you set up all windows to default to 80x24, which is handy if you like to start applications just by "program <>>>/w&", y'see. I think with the latest info I gave you, you should be able to do what you want, more or less. Not everything is possible with any windowing system. The rules for us with the 1b21 Select code are fairly simple: * For immediate visible change to take place, you must be running off the current interactive window. This makes sense, as you wouldn't want any program in the world to switch windows on you while