mirror of
https://github.com/opsxcq/mirror-textfiles.com.git
synced 2025-08-12 16:04:01 +02:00
310 lines
15 KiB
Plaintext
310 lines
15 KiB
Plaintext
America Online
|
|
APPLE II DEVELOPMENT FORUM CONFERENCE LOG
|
|
Tuesday, November 20, 1990 10:00 p.m. Eastern Time
|
|
Topic: Apple II Network Programming
|
|
Forum Leader: Dave Sugar (AFL Dyfet)
|
|
|
|
AFL Dyfet Tonight's topic is Network Programming on the Apple II
|
|
AFL Dyfet Yes Scott, go ahead...let's give Scott some room to talk on the
|
|
floor folks :)
|
|
AFL Scott If I use GS/OS Class 1 file calls will my program be able to be
|
|
run from an AppleShare server?
|
|
AFL Dyfet On topic...:) GA Dave...
|
|
EdWatkeys Can't your programs run from a server provided they don't READ or
|
|
WRITE BLOCK?
|
|
Dave Lyons Scott, that isn't enough to *guarantee* you'll run with
|
|
AppleShare, but it's certainly
|
|
Dave Lyons helpful. You don't have to worry about getting killed by long
|
|
paths that way (AppleShare
|
|
Dave Lyons pathnames can easily be >64 characters long).
|
|
Dave Lyons The stuff listed in the GS/OS Technical Notes is very good.
|
|
Dave Lyons If you have any hard-coded
|
|
Dave Lyons pathnames, make sure the high bits are turned *off* for regular
|
|
ASCII characters--the ProDOS
|
|
Dave Lyons FST ignores the high bits, even though they are *supposed* to be
|
|
off. AppleShare (and possibly
|
|
Dave Lyons other FSTs in the future) care about all 8 bits of your
|
|
characters.
|
|
Dave Lyons (ga)
|
|
AFL Dyfet In regards to Ed's question, there are instances you cannot use
|
|
block read/
|
|
AFL Dyfet write on a ProDOS volume :), and certainly not on a server
|
|
volume.
|
|
AFL Scott Ok...do you happen to remember the technote number, Dave?
|
|
AFL Scott And thanks, BTW!:)
|
|
Dave Lyons Sure, just a sec--
|
|
Dave Lyons GS/OS #4, A GS/OS State of Mind is good; also there is material in
|
|
the GS/OS Reference,
|
|
Dave Lyons of course.
|
|
AFL Scott Thanks!:) GA, Done, Finito :)
|
|
Dave Lyons Stay completely away from READ_BLOCK, WRITE_BLOCK, DRead, and
|
|
DWrite whenever you can.
|
|
Dave Lyons (ga)
|
|
EdWatkeys Dread? RWrite? What are they (I'm an 8-bitter...)
|
|
AFL Dyfet The block read/write calls are blocked in the ProDOS FST if any
|
|
files are open
|
|
AFL Dyfet on the volume in question due to caching. Otherwise you could
|
|
disturb
|
|
AFL Dyfet something in transition (ugly). For both ProDOS 8 and the GS/OS
|
|
AppleShare FST
|
|
AFL Dyfet block I/O is disabled completely. Correct Dave??
|
|
Dave Lyons Yes--
|
|
Dave Lyons AppleShare returns errors ($88 I think) if you try to do block
|
|
reads/writes.
|
|
Dave Lyons (Ed, DRead and DWrite are GS/OS calls.)
|
|
Dave Lyons One more tip--
|
|
Dave Lyons Don't use Read to scan a directory; use GetDirEntry instead. (I
|
|
think ProDOS lets you use Read for
|
|
Dave Lyons backward compatibility, but other FSTs do NOT!)
|
|
Dave Lyons ga
|
|
AFL Dyfet Under ProDOS 8, open and read the directory file through the MLI
|
|
file access
|
|
AFL Dyfet calls, and NEVER by following the directory block links with
|
|
direct block I/O.
|
|
EdWatkeys Well, what do DRead and DWrite do?
|
|
Dave Lyons (Ed, they stand for "Device read" and "device write"--they let you
|
|
read and write ranges
|
|
Dave Lyons of blocks on a block device.)
|
|
AFL Dyfet Okay, who else has a networking/AppleShare question for tonight?
|
|
ShanoJ I guess I'll make a wild stab at a question: if in Convert/3200 I
|
|
want to
|
|
ShanoJ change the suffix of a file (ie. xxxxx.SCR for a $C1 file) in the
|
|
save dialog,
|
|
ShanoJ it's not a good idea to just truncate the input filename to 11
|
|
characters and
|
|
ShanoJ add the .SCR, right? I should keep ALL of the characters? What do
|
|
I do if that
|
|
ShanoJ doesn't fit in the SFPutFile LE?
|
|
AFL Dyfet GA Joey...
|
|
AFA JoeyS Well, IMHO (and probably according to AHIG, too), a suffix should
|
|
never be
|
|
AFA JoeyS forcibly added -- naming should be totally the user's option. You
|
|
can, however
|
|
AFA JoeyS take the source (GIF, whatever) filename, truncate to 11, add
|
|
".SCR", and pass
|
|
AFA JoeyS it to SFPutFile as the default name... that'd keep everyone happy.
|
|
GA.
|
|
Dave Lyons (Yeah, what Joey said.)
|
|
AFL Dyfet :)
|
|
AFA Gary J (the Dave Lyons stamp of approval :)
|
|
AFA JoeyS :)
|
|
AFL Dyfet "Nifty-Stamp" :)
|
|
Dave Lyons :)
|
|
AFA Gary J USDA
|
|
AFA Gary J (DAve :)
|
|
Dave Lyons (Or USDAL?)
|
|
AFA JoeyS LOL
|
|
Dave Lyons BTW, it has been suggested that Standard File ought to
|
|
Dave Lyons let you specify a default name and have *part* of it selected by
|
|
default, so you could
|
|
Dave Lyons have something like [UNTITLED].SCR (bracketed part is selected)
|
|
and type over that part, leaving
|
|
Dave Lyons the suffix (but you could still edit the rest, of course).
|
|
ShanoJ So even if it's a 64 character name from an AppleShare sever, it'd
|
|
be okay to
|
|
ShanoJ truncate the thing?! Say it aint so.... :)
|
|
Dave Lyons (AppleShare names are limited to 31 characters.)
|
|
Dave Lyons What? I don't understand the question.
|
|
AFA JoeyS The user could always change it... defaults aren't forced, y'know.
|
|
:)
|
|
ShanoJ I know, I'm just thinking of MyVeryVeryLongNamedGIF coming out to
|
|
be
|
|
ShanoJ MyVeryVeryL.GIF
|
|
Dave Lyons For the SFxxx2 calls, the edit line is *not* limited to 15
|
|
characters! Use the "2" calls!
|
|
AFL Marty (If they are forced, it's default of deprogrammer.)
|
|
AFA JoeyS Right, Jonah, but the point is that that's only the program's
|
|
suggestion;
|
|
AFA JoeyS it's up to the user to name a file something meaningful.
|
|
ShanoJ Okay, I see what you're saying....
|
|
AFA JoeyS I'm not sure if you can use GetFSTInfo to get any specs on
|
|
maximum
|
|
AFA JoeyS filename length, and use that... (I'm afraid I don't have GS/OS
|
|
ref, so never
|
|
AFA JoeyS ever trust my comments on GS/OS calls. :( )
|
|
Dave Lyons Nope, GetFSTInfo does not provide that sort of info these days.
|
|
But *yes*, it would be nice if the
|
|
Dave Lyons system provided some help in constructing valid filenames.
|
|
AFA JoeyS Maybe validateFilename(desired_name): valid_name?
|
|
Dave Lyons Something like that--there are a bunch of
|
|
Dave Lyons interesting details (like how it constructs a valid name from an
|
|
invalid one, whether it has to
|
|
Dave Lyons be unique, whether you operate on a whole pathname or just a
|
|
filename).
|
|
Mac Hater (but aren't multiple FST's active at once?)
|
|
Dave Lyons MH, Yes, all the FSTs you're using are in your system at once. So
|
|
you would have to tell
|
|
Dave Lyons validateFilename which FST you wanted to talk to, or else it would
|
|
have to figure it out from the
|
|
Dave Lyons path.
|
|
AFA JoeyS Seems like it could just make the name syntactically valid, and
|
|
let the
|
|
AFA JoeyS program do any other checking it wants.
|
|
AFA JoeyS Can you get the ID of the most recently accessed FST?
|
|
AFA JoeyS (something like a P16 Get_Last_Dev, but for FST's?)
|
|
Mac Hater useless.. I just save onto hard drive, but now wanna save onto
|
|
(hint) 3.5" hfs
|
|
Dave Lyons The most recently accessed FST is not necessarily useful--FSTs get
|
|
"accessed" a lot.
|
|
Dave Lyons (Besides, what if you've got a background process, like a Find
|
|
File DA, making OS calls?)
|
|
AFA JoeyS True. <sigh>
|
|
Dave Lyons My favorite approach is to pass the FST ID to the validate call.
|
|
Dave Lyons ("Just" making the filename
|
|
Dave Lyons syntactically valid is not that simple--what you *want* is to keep
|
|
as much of the "interesting"
|
|
Dave Lyons parts of the name as you can, so the user can recognize the files.
|
|
For example, copy a whole
|
|
Dave Lyons folder of files with long names from AppleShare to ProDOS, and let
|
|
the Finder translate the names
|
|
Dave Lyons for you. I don't recall what it does currently, but you want
|
|
something like chopping out the
|
|
Dave Lyons *middles* of names that are too long--otherwise you get a lot of
|
|
duplicate filenames.)
|
|
AFA JoeyS (thinking)... (sorta-solution): after making the SFPutFile2 call
|
|
(which accepts
|
|
AFA JoeyS any sort of junk you give it), couldn't you get the FST used by
|
|
device
|
|
AFA JoeyS specified by prefix #8, then pass that ID and the requested
|
|
filename to the
|
|
AFA JoeyS validateFilename call?
|
|
Dave Lyons Wait, who sez SFPutFile2 accepts whatever junk you give it? It
|
|
actually does a GetFileInfo on the
|
|
Dave Lyons resulting path before it returns. If there's an error, it
|
|
complains & you stay in the dialog.
|
|
Dave Lyons (A bad-path error, I mean.) If there's a file-not-found error it
|
|
returns. If there's *no*
|
|
Dave Lyons error it asks if you want to replace the file or not.
|
|
AFA JoeyS Well, change it. :-) LOL, okay, maybe not.
|
|
Dave Lyons Joey, I would actually like to implement something like that,
|
|
having Standard File help you type
|
|
Dave Lyons a good name. How should the human interface work?
|
|
Dave Lyons It is complicated by the fact that you can type
|
|
Dave Lyons part of a name and switch to a different disk (possibly of a
|
|
different file system) without
|
|
Dave Lyons disturbing the "name in progress" field.
|
|
AFA JoeyS But, the SF dialog always knows what disk it's looking at, and can
|
|
always
|
|
AFA JoeyS retrieve the FST type of that volume.
|
|
Dave Lyons True, but are you saying I should *not* be able
|
|
Dave Lyons to do the following? Tab to a ProDOS volume,
|
|
Dave Lyons type in "this name has blanks", tab to an AppleShare volume, and
|
|
hit Save?
|
|
AFA JoeyS No, you should be able to do that. But after you press RETURN
|
|
with your
|
|
AFA JoeyS desired filename, the system knows: what volume you're saving to,
|
|
what FST that
|
|
AFA JoeyS volume uses, and what the filename is. That doesn't help with
|
|
on-the-fly
|
|
AFA JoeyS "guidance", but SF could put up a dialog like "The filename:
|
|
<what_you_typed>
|
|
AFA JoeyS is invalid because <name is too long><the character " " is not
|
|
accepted>
|
|
AFA JoeyS <whatever>." and let you tried again. <shrug>
|
|
Dave Lyons Yeah, that is pretty reasonable. I am leaning
|
|
Dave Lyons toward giving a generic one- or two-sentence description of the
|
|
proper syntax for a given
|
|
Dave Lyons file system, rather than telling them exactly what is wrong with
|
|
their particular path (there can
|
|
Dave Lyons be any combination of problems, including *multiple* illegal
|
|
characters, so it doesn't seem
|
|
Dave Lyons worth the complication to build a whole sentence!)
|
|
AFA JoeyS Well, in place of the specific description, the FST could try
|
|
AFA JoeyS reconstructing the input to a valid path; i.e. "The filename
|
|
AFA JoeyS 'big long file name' is not acceptable to the ProDOS FST.
|
|
'biglongfilename' is
|
|
AFA JoeyS a valid alternative." Yeah, getting complicated there, maybe too
|
|
much so.
|
|
Dave Lyons (Yeah, that too--it can make a valid path from the invalid one &
|
|
stuff that as the default in a
|
|
Dave Lyons line edit box inside the dialog. I don't want the dialog more
|
|
complicated that necessary, but it
|
|
Dave Lyons may work. Buttons = Cancel (back to main SF dialog), Continue
|
|
(use the name entered in the
|
|
Dave Lyons sub-dialog). Reasonable?
|
|
AFA Gary J That's reasonable to me.
|
|
AFA JoeyS Continue = accept system's altered/valid name? Sounds good,
|
|
yup.
|
|
Dave Lyons Continue = accept whatever is in the subdialog line-edit box,
|
|
which starts out as a system-
|
|
Dave Lyons provided valid name, yeah.
|
|
AFA JoeyS Yeah... well, err...
|
|
Dave Lyons (And that would be continue saving *or* continue with the "New
|
|
Folder" operation. Is that all?)
|
|
AFA JoeyS I might be missing something, but why have an LE field in the
|
|
subdialog (the
|
|
AFA JoeyS warning box)? Just pass it back as the new default name in the
|
|
regular
|
|
AFA JoeyS SFPutFile; that way the user can go change disks again or whatever
|
|
without
|
|
AFA JoeyS clicking any extra buttons ('cept OK/RETURN to dispense with the
|
|
original
|
|
AFA JoeyS alert -- which users could do without even looking at it.)
|
|
Dave Lyons Hmmm...okay, then you have "Cancel" and "Accept", and once you
|
|
Accept you have to click Save again,
|
|
Dave Lyons right?
|
|
Dave Lyons That would work too.
|
|
AFA JoeyS Seems there should be only >one< place to type the filename (the
|
|
current LE
|
|
AFA JoeyS box).
|
|
Dave Lyons Okay, I can dig having only one place to type the name. It seems
|
|
like there should be an option
|
|
Dave Lyons to ignore the reconstructed name & just fix it yourself, since you
|
|
might have clicked Save while
|
|
Dave Lyons on the wrong disk (you might have the right name on the wrong
|
|
filesystem, instead of a bad name on the
|
|
Dave Lyons right filesystem, no?).
|
|
AFA JoeyS I'm sorry, I don't agree with that... having an option to ignore
|
|
the regen'd
|
|
AFA JoeyS name just adds one more option; gets too confusing. The =worst=
|
|
that could
|
|
AFA JoeyS happen if the system just passed the regen'd name to the regular
|
|
SF dialog LE
|
|
AFA JoeyS box is that you accidentally hit save, and get a misnamed but
|
|
recognizable
|
|
AFA JoeyS file. There's no way to avoid accidentally clicking buttons.
|
|
%)
|
|
AFL Dyfet :)
|
|
AFA Gary J I don't know. I think I'd get ticked at the computer altering my
|
|
file name if
|
|
AFA Gary J I had it right, but just selected the wrong volume.
|
|
AFA JoeyS You shouldn't have selected the wrong volume, then. :P LOL
|
|
Dave Lyons :)
|
|
AFA JoeyS <re-shrug> I guess if the "This name is invalid; 'blah...' is an
|
|
acceptable
|
|
AFA JoeyS alternative." had Cancel (OA/.) (ignore changed name) and OK
|
|
(RETURN) (accept
|
|
AFA JoeyS changed name) buttons I'd live.
|
|
AFA Gary J True :) But what if you have "Big long path name for a HFS
|
|
volume", and had
|
|
AFA Gary J to re-type? I guess you'd learn fast to get the volume right the
|
|
first time!
|
|
AFL Dyfet I think we could probably do better discussing this in a message
|
|
area :)
|
|
AFA JoeyS LOL... right, Gary. Who types names like that anyway? :)
|
|
AFA Gary J Only the mac types, I guess.
|
|
Dave Lyons (Gary, your name is 3 characters too long, I think.)
|
|
AFA JoeyS :) Dave
|
|
AFA Gary J I think so, Dave :)
|
|
A2GS <--- My name just makes it :-)
|
|
AFA Gary J :)
|
|
AFA Gary J AFA Gar
|
|
Dave Lyons :)
|
|
AFL Dyfet I hate when that happens...
|
|
AFA Gary J :)
|
|
AFC TAP so do I..
|
|
A2GS Never seems to happen to me...wonder why? (looking at ceiling)
|
|
AFA JoeyS Be thankful we're not using MS-DOS... we'd be stuck with
|
|
filename.dat. :(
|
|
AFA Gary J That's got to be the worst.
|
|
AFL Marty I like MSDOS :)
|
|
A2GS Messy-Dos....the way of the future
|
|
AFA Gary J But wait, what about DOS 3.3 file names? :) (just kidding)
|
|
Dave Lyons (The Tandy 200 has FILNAM.XXX. That's worse.)
|
|
A2GS DOS 3.3 was/IS great
|
|
AFA JoeyS Well, it's a bitty machine, though.
|
|
AFA Gary J (DOS 3.3 names are nice compared to ProDOS, although ProDOS is
|
|
more practical)
|
|
|
|
|