AppleLink APPLE II DEVELOPMENT FORUM CONFERENCE LOG June 27, 1989 10:00 p.m. eastern time Topic: BASIC Programming (and other stuff) Forum Leader: Dave Sugar (AFL Dyfet) JSchober Dave... got a question for ya'. Are the AuxTypes of DIR files reserved?? (I JSchober assume so) Dave Lyons Yup, I think DIR auxtypes are reserved. The Finder *pretends* that certain Dave Lyons kinds of DIRs have certain auxtypes, so the auxtype of a DIR *icon* has some Dave Lyons significance (drop box, folder you own, etc.). I'm talking Finder on 5.0, Dave Lyons with AppleShare folders. JSchober Hmmm. But if I'm not worrying about AppleShare... well, either way, Matt will JSchober probably kill me. I just won't tell him. :) AFL Vince Just got my first taste of Appleshare and 5.0 today, Dave.. Tim and gang did some NICE work! Dave Lyons What did you do? I really think they *are* reserved. AFL Marty (death to AppleShare) AFL Dennis Hi Jim Dave Lyons You probably *won't* be able to set an AppleShare DIR's auxtype, although Dave Lyons I haven't tried it. Doesn't your app work with AppleShare? JSchober Well, I want to keep a reference constant for a folder somewhere, without ... AFA Gary J I guess we can get started here..... JSchober creating a new file. Any suggestions? JSchober Uhhh... what? AFA Gary J Welcome to the Apple II Development Forum. Tonight's topic is BASIC programming. AFL TimB Joe, if you're talking about anything other than Rolodex....shame on you! ;) AFA Gary J I'm Gary Jacobson, and I'll act like I'm the forum leader until AFL Dyfet AFL Vince which Basic, GS Basics, or Appleslosh? AFA Gary J comes in :) AFP Draco Gary - does that mean you'll tell bad jokes? AFA Gary J We'll be using forum protocol this evening, so **STARTING NOW**....if you JeffDavies Can I ask a question off the subject? AFA Gary J have a question, type a "?" on a line by itself, or if you have a comment AFA Gary J on the current topic, type a "!". AFA Gary J I'll call on you when it's your turn, and we'll take everyone in turn. JSchober Hi Dave... :) AFA Gary J (Ahhh...here's Dave now :) AFL Dyfet I guess I scared Vince off ?? AFL TimB Uhoh, here's trouble! AFA Gary J :) AFP Draco no more COM jokes gang AFA Gary J We've just started, and I've instituted PROTOCOL... AFP Draco Oh... HI Dave! AFL Dyfet Okay, did Joe get his question in? AFA Gary J Go ahead, Joe with your question.. AFL TimB (If their Kent's jokes, not much) JSchober Well, I just want to finish up the question I started before Gary did the intro JSchober I've got an Applesoft program with which I would like to store a RefCon for JSchober a directory. What's the best way to do this, without creating a new file? JSchober GA AFL Dyfet GA Dave. Dave Lyons What do you want to keep track of? I don't see what to do offhand other Dave Lyons than creating a new file, which you don't want to do, or imbedding the Dave Lyons information in the directory's name. Or keeping a big separate file somewhere Dave Lyons that has all the dirs' info in one place. ga JSchober Well, I just need a number that indicates what the last data in the dir was. JSchober The dir's name can't change. :( That's why I'd =like= to stuff the number in Dave Lyons That "last data in the dir"? JSchober the AuxType... but that seems to be anti-Matt behaviour... Dave Lyons Think of it this way...if *two* programs did the same thing you want yours JSchober A number that's an index to the most recent file put in the dir... (we're Dave Lyons to, it wouldn't work, right? Ick. JSchober talking BBS development here) JSchober Well... yeah. Any other little spaces that aren't used, anywhere? GSGM ! Joe AFL Dyfet GA GSGM. GSGM Couldn't you have the program read the directory and check the modified... Dave Lyons _Any_ little spaces that "aren't used" present the same problem as the auxtype: GSGM date field. GA AFL Dyfet From what I'm following, you want to add extra tracking information into the Dave Lyons why should *your* program be the one that gets to use them? AFL Dyfet directory itself. I think you would be better off with a seperate file to AFL Dyfet handle this instead of using the dir file itself. I think Matt will also JSchober I know, I know... but there =should= be a refCon space in the dir field. :sulk: AFL Dyfet apperciate this :). JSchober Yeah, I'm sure he would, Dave :), but I'm trying to push as much speed as ... AFL Dyfet GA Dennis. JSchober possible. Ok, so it can't be done... thanks, tho! :) Dave Lyons There *is* a refcon in a directory...it's called "the data stored in a file AFL Dennis Couldn't you place the time/date of the files in the Aux type, then with a quick search find Dave Lyons with a really weird name." :-) AFL Dennis the most recently modified one within the directory? Fairly quick when it comes to AFL Dennis dir scanning. JSchober :) Well, yeah, that WOULD work, Dennis, but probably would be as fast as JSchober keeping it in a file. Get_File_Info is much quicker than Open... Dave Lyons Idea! If you want to use Get_File_Info Dave Lyons instead of Open, just create a file of your own inside that dir (probably a Dave Lyons BIN file?), and use the *file*'s auxtype. Should be fast & legitimiate. JSchober Aha aha! That's it!! Thanks Dave! I knew I could count on you... :) Dave Lyons :) AFL Dyfet Yes, that would be legitimate :). Okay, I believe our next question is from AFL Dennis How bout using the reserved space in the Directory header, offset +$14? AFL Dyfet GS 816. You now have the floor. GS 816 thank you. GS 816 My question may be known by some of the old timers who remember things like GS 816 call-apple in depth "All about Applesoft" and C. Bongers. It seems that I GS 816 have found a way to duplicate the infamous RETURN WITHOUT GOSUB problem that GS 816 is described in the afore mentioned book. I'll be honest, the explaination GS 816 of the problem is slightly over my head as it talks of tape and ROM CARD GS 816 corrections, but not if the AppleSoft is in Motherboard ROM. Does anyone GS 816 know of a way to correct the problem by going around to the back door? That GS 816 is via changing programming code. It seems that there is a conflict when GS 816 arrays are searched and a gosub is on a page boundry, but even adding extra GS 816 code has not helped the situation and I still recieve the infamous error msg GS 816 when a legitimate gosub has been called. ga AFL Dyfet I do vaguely recall the bug you are refering to, though I suspect the problem AFL Dyfet is in a routine far too deeply rooted to be effected with a patch other than AFL Dyfet with a eprom burner :). Any other comments? GS 816 if anyone has the book handy, it is explained on pages 100 and 101 GS 816 not everyone at once, please AFL Dyfet There are actually a couple of minor bugs in Applesoft, such as with resume, AFL Dyfet . I think your best bet for some of these problems is to create an ampersand AFL Dyfet routine that operates 'correctly'. AFL Dyfet Any further comments? GS 816 If anyone has any ideas, please feel free to email them to me. AFL Dyfet Okay, I believe the next question is from Jeff. GA Jeff. JeffDavies This is off the subject, but does anybody use orca/c or orca/m in the desktop JeffDavies and have trouble with the macgen and compiling programs? I can't really get JeffDavies either to work and need help. AFL Dyfet How much ram do you have in your system? JeffDavies right now 1.25 I know I will need more, but I don't know if that is it. AFA Gary J Are you using an SCSI hard drive? JeffDavies yes the 20SC AFA Gary J What exactly doesn't work, does it crash? JeffDavies yes, and when I do a ctrl-apple-T the program crashes in bank @00/0000 AFA Gary J I've had exactly the same problem. I've talked to Mike Westerfield in e-mail AFA Gary J about it here on-line, but he's never been able to duplicate it. AFL Dyfet GA Dave. Dave Lyons Do you have any CDAs, NDAs, or other utilities installed in your system? If Dave Lyons so, see if the problem still occurs without them. If it doesn't, that *might* Dave Lyons mean one of your DAs has problems, or it might mean that the ORCA environment Dave Lyons (or even part of the OS...I don't want to single out ORCA as the only Dave Lyons possibility) has a problem that happens only in "unlucky" circumstances. JeffDavies Good idea I never thing of the most obvious stuff! The orca env. won't let you JeffDavies open a file or new window with a da active. Dave Lyons Not even with an ORCA window in front? AFA Gary J Let me know if you find the problem, Jeff. JeffDavies well if an orca window is in front it's ok. JeffDavies Vince are you the vince going to work for TML? And thanks for the ideas guys! AFL TimB Vince who? AFL Dyfet Okay, I see Joe is back in the queue and is next. I would like to give the AFL Dyfet floor to Joe now, except that I'm not sure I will get it back :). GA Joe. AFA Gary J :) JSchober (thrrrpt!) JSchober This is (hopefully!) a simple one -- do the Basic.System OPEN and CLOSE ... JSchober commands respect the LEVEL byte in the ProDOS global page?? that is, if I JSchober set a level, open a file, LOWER the lever (or is it raise it? I always get JSchober confused...), then do a ? CHR$(4)"CLOSE", will the opened file stay open? AFL Dyfet GA Dave. Dave Lyons I don't think it's documented or guaranteed. If you only want to close Dave Lyons specific files, then do it explicitly: ?CHR$(4);"CLOSE FILE.A", etc. The Dave Lyons LEVEL mechanism is there for SYS programs to use, and BASIC.SYSTEM *could* Dave Lyons pass that right on to the Applesoft programmer by documented a way to use it, Dave Lyons but as far as I know that has not been done. Dave Lyons (ga) AFL Dyfet Basic.System may also decide the file buffer has been closed even if ProDOS AFL Dyfet does not. Basic.System does use the level function to hold the exec file open AFL Dyfet however, so at some level it does operate. JSchober Ok, well, I never know what files are going to be open, so I can't explicitly JSchober close 'em. Hmmmmm... really, Dave? Interesting. I'll have to look at that Dave Lyons Why don't you know?? Who opened them? JSchober one. Ok, that's it... thanks. (SEE?? Didn't take 15 mins... ;) AFL Marty (zzzzzzzzzzz :)) JSchober Oh, I did, but any number could be open with variable names, and I don't JSchober currently keep a table once they're open. (it's a long story... :) Dave Lyons If you don't know which files are open, how is the part of the program that Dave Lyons DID open them supposed to know that they are no longer available for reading Dave Lyons and writing? JSchober I use MLI calls to file ID numbers. (Don't bother telling me that sequential Dave Lyons (This could *still* take 15 minutes...or I could just shut up. :-) JSchober assignments aren't guaranteed... I know... ;) JSchober LOL Dave Lyons Done, I guess. AFL Dyfet Again, the thing to watch is not if ProDOS keeps the file open, but if Basic. AFL Dyfet System decides to free the buffer anyway :). Any further comments? JSchober Acccck. :( AFL Dyfet Okay, I believe the next question is from Tim, who is a little off (the AFL Dyfet subject). GA Tim. AFL TimB My question is a multi-parter! :) (Dave has already heard pieces of it) JSchober (hmph, now HE'LL take 15 mins... ;) AFL Marty (he's a _lot_ off :) AFL TimB With TML Pascal is it necessary to start up and initialize texttools for a CDA? Dave Lyons ! AFL TimB Explicitly. AFL Dyfet GA Dave. Dave Lyons Yup. AFL TimB Next question... Dave Lyons You should make several calls, something like this: AFA Gary J 15 seconds... :) JeffDavies ! Dave Lyons TextStartUp, then SetOutputDevice, SetInputDevice, SetOutGlobals, and Dave Lyons SetInGlobals. You'll probably want to set the output and input devices to Dave Lyons be slot 3 and be either BASIC or Pascal devices. For SetOutGlobals, you need Dave Lyons an AndMask and an OrMask. The And mask can be $00FF (don't strip off any of Dave Lyons the lower 8 bits) and the OrMask can be $0080 (turn on bit 7). For Dave Lyons SetInGlobals I think you'll want AndMask $007f (strip off bit 7) and OrMask Dave Lyons $0000 (don't force any bits on). AFL Dyfet I knew it wasn't in Dave to give out a short answer :). GA Jeff. AFL TimB Can I follow up? Dave Lyons After setting everything up, call InitTextDev(0) and InitTextDev(1) to init Dave Lyons the input device and output device. (ga) JeffDavies I don't know much about the text tools but wouldn't you want to do a JeffDavies check to see if the text tools are already active and then do a start up JeffDavies only if they aren't active? Dave Lyons Hmmm...good question. Actually I think it's an academic Dave Lyons question, since TextStartUp doesn't do a whole lot at the moment anyway. Dave Lyons One solution is to *avoid* the text tools. Use the console driver under Dave Lyons GS/OS. Under P8 you need to use text tools or go directly to the screen. AFL Dyfet I think it's always a good idea to go through the motions of tool startup Dave Lyons Also, it is a good idea to AFL TimB Does TML Pascal have interfaces to GS/OS drivers? Dave Lyons preserve the state of the text tools around your use of them: that means JSchober ! (brief question on the topic) Dave Lyons using GetOutputDevice, GetInputDevice, GetInGlobals, GetOutGlobals at the Dave Lyons beginning and using SetXxx at the end to put everything back. ga. AFL TimB ^^^^^^^^^ AFL Dyfet Um, before we get back to Tim's 'short' question, let's give Joe a chance to AFL Dyfet sneak in his 'brief' question. GA Joe. JSchober When doing output to the .console driver under GS/OS, does it properly handle JSchober Pascal emulation codes (Ctrl-O and N for inverse on/off, etc)? JSchober GA AFL Dyfet I believe they've added a few as well as supporting the older codes. Is this AFL Dyfet correct, Dave? JSchober (did Dave pass out?) Dave Lyons Okay, MOST of the stuff Dave Lyons that the console driver does happens to match the "Pascal" way...I don't have Dave Lyons the manual open in front of me at the moment. There is a lot MORE stuff that Dave Lyons the console driver can do that the Pascal codes can't. ga AFL Dyfet That was my understanding also. Okay, I guess Tim can have the floor back JSchober Hmmm. But so I'd have to write a conversion procedure to go Pascal ==> console AFL Dyfet now. GA Tim. JSchober Yecch. Thanks... JSchober ::giving floor to Tim... gee, it's heavy...:: AFL TimB Does TML have interfaces to GS/OS drivers? Dave Lyons Oh, other than sending characters to the device, there are also DControl Dave Lyons calls that do keen stuff. I *think* they are DControl, at least. Could be Dave Lyons FST-specific calls, conceivably. ga AFL Dyfet We lost Tim in there :) AFL TimB ^^^^^^^^^^^^^^^^^ AFL TimB (You can try to shake me off, but I'm persistent! :) ) AFL Dyfet Okay, GA Dave. Dave Lyons Sorry...didn't see your question, Tim. I don't think TML Pascal 1.50A Dave Lyons has GS/OS routines declared, but using the "ProDOS" directive you can declare Dave Lyons them yourself...for example, Procedure GSOSGetDirEntry(...); ProDOS $201C; Dave Lyons declares the routine so you can call it yourself. Is this what you meant? AFL TimB I'm a real beginner, a little advanced for me I think. I'll wait for Pascal II AFL TimB to use the console.driver, :) AFL TimB I'll go with setin and outglobals. AFL TimB GA Dave Lyons You definitely need the GS/OS reference. It's easy to model your own AFL TimB (done, at last) Dave Lyons declarations after the ones provided, if you have the documentation. AFL Dyfet Okay, I believe we are running on empty here. Any more questions for tonight? JeffDavies I have two quick questions ...and one normal one AFL Dyfet Oh, I missed you Jeff. GA Jeff. AFL TimB Thanks muchly (off to try out solution) :) JeffDavies 1) wheredid the II tech notes go? and what does AFL stand 4? AFA Gary J II Tech Notes?? JeffDavies yes AFL Dyfet Let's try the second first. AFL=Apple Forum Leader, that means the poor AFA Gary J You mean in our libraries? AFL Dyfet volunteer who's job it is to keep a given forum in line and running. AFA Gary J :) JeffDavies Well I'v been looking for the tech notes that use to be around here, but AFL Marty (Poor, honest, hardworking slave :) JeffDavies now can't find. AFL Dyfet AFA's are Forum Assistants, and they get all the dirty jobs :) AFA Gary J :) Yup.... heheh AFL Marty (AFAs play games in the entertainment area all night) JSchober AFL Marty :) Doctor Why :) AFA Gary J Jeff, as for the tech notes, look in the Apple Computer Releases section AFA Gary J of our software library. AFA Gary J AFL Marty (AFC's ride the coattails of the famous but hardworking AFLs :) JeffDavies ok , now for the tough one unless someone else has oa question. JSchober :) AFL Dyfet GA Jeff. JeffDavies To save a file, in assembly, how do you do it? JeffDavies right now I am doing the dialog box for the name AFL Dyfet GA Dave. Dave Lyons You've *got* the name, and you want to know how to actually create JeffDavies then checking to see if i is present if not... I don't remember it confussed me Dave Lyons a file and write stuff to it? Dave Lyons Also, are you talking ProDOS 8 or GS/OS? JeffDavies GS/OS Dave Lyons Ah. Do you have documentation for the GS/OS calls CREATE, OPEN, WRITE, and AFL TimB :( Dave Lyons CLOSE? Those are the ones you need. JeffDavies I think I create then write and then at the set eof and close or that might be JeffDavies redundant at the end. Dave Lyons You don't need to SET_EOF unless you didn't write the amount of data you Dave Lyons really wanted to. AFL Dyfet I hope you open somewhere in there :) Dave Lyons You do need to Open, Write, and Close. You need to Create first if the thing Dave Lyons doesn't already exist. JeffDavies I don't remember exactly I was trying to save stuff I recorded in Mench's Dave Lyons I don't know what else to tell you until you ask a more detailed questin. JeffDavies MIDIScope Dave Lyons or ...ion. Dave Lyons Be sure to check for errors after all the calls so you know if they are Dave Lyons really working. Even after Close, check at least during development so that Dave Lyons you'll find out if you aren't storing a file's reference number into the Dave Lyons parameter list correctly. AFA Gary J (questin...that must be mid-western talk for question, right? :) JeffDavies Well I will check and apply what was said thanks Dave Lyons (For "questing," actually. :-) Dave Lyons ok. done Jump Long Hi everyone :) AFL Dyfet Welcome aboard Jim. Okay, was there anything further, Jeff? AFA Gary J Hi Jim! Jump Long Aye Aye, Captin' Dave JeffDavies nope thanks alot :) AFL Dyfet Uh oh, I think this means we return to Tim :). GA Tim. AFL TimB I'm still having problems with my CDA. I set up my in and outglobals (and ... AFL TimB devices) I enter a filename andthe program does a GetFileInfo with no trouble, AFL TimB I display the resulting values (no trouble) I ask for replacements, it accepts AFL TimB the first writeln and readln and dies on the second one. But I don't have... Dave Lyons Dies HOW? AFL TimB this problem when I'm calling from ProSEL16 AFL TimB System just hangs. AFL TimB This is driving me insane (it's not a long drive) :) Dave Lyons Will I be able to duplicate this problem with the code you sent me in the Dave Lyons P.O., Tim? AFL Marty gmta Tim AFL TimB I'm using (Input,Output) and a Page statement, could these be causing it? AFL TimB No, DAve, I have advanced a little since last Wednesday! ;) (Not much tho) IIGS MAN Whats up? Dave Lyons Gee, was that last Wednesday? :-) Haven't been logging on regularly. :-( IIGS MAN So how is System Disk 5.0 going? When is it going to be out? AFL Dyfet IIGS MAN, we are in protocol, which means you will have to wait your turn. AFL TimB Just sent the newest version to you DAve. :) AFL Dyfet Tim, and Dave currently have the floor. Dave Lyons Well...Tim, send me the new source & I'll take a look at it tonight. AFL TimB I'm using the CDA as a learning experience. :) Sure is helping!!!! :))))) AFL TimB (done) AFL TimB Thanks DAve AFL Dyfet GA Dave. Dave Lyons "This summer" is when 5.0 is going to be available. It's good. ga AFL Dyfet Your question has been queued, IIGS Man, and you will be next, when Tim and AFL Dyfet Dave are done. AFL Dyfet GA Tim. AFL TimB I hear that TML is shipping TML Pascal II with GS/OS on july 1st. That's what AFL TimB they told me! AFL TimB GS/OS 5.0 that is. AFL Dyfet Continue Dave. Dave Lyons GS/OS is version 3.0 on System Software 5.0. (So there.) AFL Dyfet Okay, is there any further comments on Tim's ORIGINAL question? AFL TimB Dave :P AFL Dyfet Okay, I believe the next question is from IIgs Man. GA. AFL Dyfet I think we lost IIgs Man....??? Dave Lyons (Did we already answer his question? I jumped the gun...sorry.) AFL Dyfet Okay, I guess we will move along to Joe then. You have the floor, Joe. IIGS MAN When is GSOS 3.0(system disk 5.0) going to be out? AFL TimB (Leave it clean Joey) IIGS MAN (a date) JSchober Dave: I thought it was GS/OS 2.0, no? Dave (or anyone): Have the annoying JSchober incompatibilities with the new SCSI.DRIVER been fixed yet? GA... AFA Gary J Between June 22 and Sept 22 (summer). AFL TimB Smaller than a breadbasket! AFL Dyfet GA Dave. Dave Lyons (No specific date has been announced, GS MAN.) Joe, GS/OS is v2.0 on System JSchober you can kinda count out june 22-june 27... :) AFL TimB HEHE Dave Lyons Software 4.0; on 5.0 is't v3.0. There is no file called Dave Lyons SCSI.DRIVER on 5.0; instead there is a SCSI.MANAGER and SCSIHD.DRIVER (I hope Dave Lyons I got that right). The code is new & does not suffer from the problem that AFA Gary J (Right, Joe. That narrows it down a bunch :) JSchober Dave Lyons Glen Bredon released a patch for; I believe it works well with 3rd-party Dave Lyons hard drives, too. The SCSI.DRIVER on 4.0 was always intended to be a Dave Lyons er...an "interim" driver while the FAST one was written. ga AFL TimB I gotta go. Thanks a lot guys for the help! :) JSchober Any problems with the CMS SCSI card?? (gulp) JSchober Night Tim! AFL Dyfet Gnight Tim. Dave Lyons The SCSIHD.DRIVER works with the Apple SCSI card; it ignores the CMD card. Dave Lyons CMS. Sorry. As far as I know, the "generated" driver works fine (although Dave Lyons probably not terribly fast) with the CMS card. Does anybody know if a loaded JSchober Oh. I'd heard of problems that caused the CMS SCSI card to, like, explode, or Dave Lyons driver is available for that card? JSchober something along those lines. No details, tho. (No specific CMS driver yet...) Jump Long explode??? hahaha AFL Dyfet "Nice operating system's don't explode" JSchober heh AFL Dyfet Okay, I believe IIgs Man has a question he wishes to get out. GA IIgs Man. IIGS MAN I once saw a program that allowed you to download mac files. Where is it? AFL Dyfet If you mean the utility that converted Mac Sit files, I believe that might have AFL Dyfet been in Scott's Forum. IIGS MAN Not graphics,it lets you download mac files of all kinds! AFL Dyfet I would suggest looking into the utilities forum then. The one I'm thinking of AFL Dyfet was targeted at Mac Pic files specifically.