mirror of
https://github.com/opsxcq/mirror-textfiles.com.git
synced 2025-08-11 10:04:09 +02:00
607 lines
29 KiB
Plaintext
607 lines
29 KiB
Plaintext
America Online
|
|
APPLE II DEVELOPMENT FORUM CONFERENCE LOG
|
|
Tuesday, January 29, 1991 10:00 p.m. Eastern Time
|
|
Topic: Open Topic
|
|
Forum Leader: Dave Sugar (AFL Dyfet)
|
|
|
|
|
|
AFL Marty How's Twilight coming?
|
|
AFL Marty (or shouldn't I ask)
|
|
ShanoJ Uggh... Got the cde review back from Matt... He ONLY found 35
|
|
things wrong with
|
|
ShanoJ it... :( Jim want's me to change ALL of them (some of them aren't
|
|
mistakes but
|
|
ShanoJ things he'd like to see added). That should only take me about 5
|
|
decades... :(
|
|
AFL Marty So you did pretty good then.
|
|
AFA Gary J Oh, I thought it would be more like 35 minutes :)
|
|
AFL Marty :)
|
|
AFL Dyfet What kinds of things?
|
|
ShanoJ He want's to do things like a Twilight toolset that includes
|
|
standard functions
|
|
ShanoJ that all of the blankers can use... Also a Twilight manager that
|
|
keeps track
|
|
ShanoJ of the blankers in cool ways.... Only about half of the things
|
|
were actual
|
|
ShanoJ bugs, and I want to just fix those and release it. Then we can go
|
|
back and aff
|
|
ShanoJ (err, add) the spiffy things in a later version... I don't think
|
|
Jim agrees,
|
|
ShanoJ though... :(
|
|
|
|
AFA Gary J Open topic tonight, eh? (I have a question when things are slow
|
|
:)
|
|
Apple Guru Does anyone know of a HD for the //c? (internal, NOT Applied
|
|
Injinuity)
|
|
AFL Dyfet Not off-hand, Guru....
|
|
Apple Guru Good.....maybe mine will sell then! :-)
|
|
Windrider5 does anyone know what resource type $800C is?
|
|
AFL Dyfet GA Dave :)
|
|
Dave Lyons It's rCtlDefProc, as revealed by typing 800c\rtype in Nifty
|
|
List.
|
|
Dave Lyons (Gee, I hope that was in 3.0... :) BTW, will be uploading 3.2
|
|
soon. I know I said that last
|
|
Dave Lyons week, but now I fixed redirecting to slots, which I discovered I
|
|
had broken horribly. ga
|
|
JWankerl Yep, it was in 3.0.
|
|
AFA Gary J (of course.... :) (Nifty List 3.2, no doubt :)
|
|
FeinDavid We want it yesterday!
|
|
Apple Guru Nifty List 3.2 RSN!!!
|
|
AFL Dyfet Now, what was your question, Gary? :)
|
|
AFA Gary J :)
|
|
FeinDavid Tanks gary.... 8)
|
|
AFA Gary J Oh, let's see. Can anyone tell me a good way to detect an
|
|
entrance into the
|
|
AFA Gary J control panel? I want to do something AFTER it has occurred.
|
|
Dave Lyons Can't think of one off hand; what do you want to do?
|
|
Apple Guru I thought that was supposed to be "invisible"
|
|
JWankerl There's a vector for going to the Desk Accessories menu, I
|
|
believe.
|
|
AFA Gary J Well, I want to determine if the speed has been changed, for one
|
|
(via normal
|
|
AFA Gary J IIGS speed, or transwarp/zip chip CDA)
|
|
FeinDavid Patch the vector, and then allow access...
|
|
AFA Gary J Yes, there's a vector, but it doesn't return.
|
|
FeinDavid There is a byte you can check for the speed...
|
|
Dave Lyons If you want to know when the CP updates the system state to match
|
|
the battery-RAM, you could
|
|
Dave Lyons *carefully* chain into the ToBRAMSetup vector, I suppose.
|
|
FeinDavid If you sense a enterance into the control panel, then you can set
|
|
a flag that
|
|
FeinDavid tells you to check the speed... make it a standard check at that
|
|
flag.
|
|
AFA Gary J Ah, that's an idea, Dave. (other ideas I had included checking
|
|
the border
|
|
AFA Gary J color, and see when it changed, but that requires that I look
|
|
constantly)
|
|
Apple Guru Do a timing loop based o VBLIRQ
|
|
FeinDavid Which dave? he he?
|
|
AFA Gary J I'm not concerned about what to do AFTER the detection, it's
|
|
doing the
|
|
AFA Gary J detecting and surviving afterward, that I want :)
|
|
AFA Gary J Dave L: Can you define "*carefully*"?
|
|
Apple Guru Like I said, software timing loop, called on VBLIRQ real easy way
|
|
to sense spee
|
|
JWankerl Based on VBL? That's 60/sec always, eh? :-)
|
|
AFA Gary J I know how to sence speed changes, I just don't want to do it all
|
|
the time.
|
|
Dave Lyons Gary, I just mean to be sure you preserve Bank, D, *and* the
|
|
processor flags when you do that, since
|
|
Dave Lyons the Carry flag is significant going into that routine (see
|
|
firmware ref--says whether to update
|
|
Dave Lyons the slot settings or not). Also note that the vector is called in
|
|
SEP 30 mode (not emulation,
|
|
FeinDavid No, just making sure that speed does not affect an application.
|
|
Dave Lyons but 8-bit native).
|
|
Apple Guru JWankerl....Yes, VBLIRQ is every 1/60'th sec.
|
|
AFA Gary J Thanks, Dave.
|
|
Coach101 Does a speed change cream your program or just render its output
|
|
less than attractive?
|
|
Apple Guru I think Gary is doing something with copy protection YEACH
|
|
AFA Gary J Coach: Speed changes the performance of my program :) There are
|
|
some speed
|
|
AFA Gary J sensatitive delays (it just makes things easier for the user)
|
|
that I want to
|
|
AFA Gary J update. (Not copy protection, sorry :)
|
|
JWankerl Gary: You should probably use GetTick to time your delays.
|
|
Apple Guru Gary....GOOD....I hate CP
|
|
Coach101 It just occurred to me that protecting a user against a user's
|
|
overt action (changing speed)
|
|
Coach101 seemed like a lot of trouble for an infrequent occurance. ga
|
|
Apple Guru Hmmmm....I ALSO hate programs that watch my speed. It's MY fault
|
|
if my speed
|
|
Apple Guru setting causes problems if noted in manual
|
|
AFA Gary J Well, I also want to keep the border a certain color... it just
|
|
looks better
|
|
AFA Gary J that way :)
|
|
Coach101 If we torture Gary long enough the truth will come out :) :)
|
|
JWankerl Continue storing your color value there based on a heartbeat
|
|
interrupt. :-)
|
|
AFA Gary J :)
|
|
AFA Gary J Well, if I do that, I can just check the border color in my loop,
|
|
and if it
|
|
AFA Gary J changes from what I set it to, then someone has probably entered
|
|
the control
|
|
AFA Gary J panel :)
|
|
Apple Guru I thought thats what I said RE: VBLIRQ
|
|
Coach101 awk
|
|
AFA Gary J (Unless they had it set to the same color I'm putting it at :)
|
|
AFA Gary J But, I'd prefer to not have to use time in my loop for mundane
|
|
things like that.
|
|
Apple Guru what user would ever see 1/60'th of a second???
|
|
AFA Gary J It's not that kind of timing that I need to check. It's more
|
|
like a counter
|
|
AFA Gary J type of thing, much like a flashing cursor rate, or that sort of
|
|
thing.
|
|
JWankerl Yeah. And if they enter the control panel, they deserve to get an
|
|
ugly border.
|
|
AFA Gary J (But, it effects the performance of the program)
|
|
Apple Guru JW....very true!!
|
|
JWankerl As I said before, use GetTick to time your loops.
|
|
Apple Guru Sounds good to me too. Unless there are other routines using it
|
|
AFA Gary J GetTick won't do it in this case. It's more a matter of how many
|
|
times through
|
|
AFA Gary J the loop.
|
|
Apple Guru (that only counts in REAL critical code)
|
|
AFA Gary J Right, Guru.
|
|
Apple Guru <==-- tried using GetTick in CP routine.......yeach....:-(
|
|
AFA Gary J Oh well... (enough of my babbling).... on to other questions :)
|
|
Apple Guru IDEA!!!!!!
|
|
AFL Dyfet Yes Guru?
|
|
Apple Guru Check just PAST your stack pointer, look at OLD return address!
|
|
Apple Guru That could tell you if Cntrl Panel was up!
|
|
AFA Gary J Yes, but I'd still have to check that constantly. It would be
|
|
easier to
|
|
AFA Gary J check the border color :)
|
|
Apple Guru well....I DID try....:-)
|
|
AFA Gary J (or the text color, which nobody will see in an SHR program :)
|
|
Matt DTS What's this about checking to see if the CP is up? I've been
|
|
kicked off and missed some of this.
|
|
Matt DTS Synopsis, please.
|
|
AFA Gary J Matt: I was just looking for a way to determine when the user
|
|
had entered the
|
|
AFA Gary J control panel... so that I could check a few things AFTER the
|
|
fact.
|
|
Matt DTS Control Panel NDA or CDA?
|
|
AFA Gary J CDA
|
|
AFA Gary J (Control - Open-Apple - ESC)
|
|
Matt DTS What is it you want to check?
|
|
AFA Gary J I want to check the system speed (for one thing) and the border
|
|
color.
|
|
AFA Gary J (parts of the program look real bad under certain border color
|
|
settings :)
|
|
Matt DTS The answer, of course, is to redesign your program properly
|
|
instead of ignoring the user's choices.
|
|
AFA Gary J :)
|
|
Matt DTS (like for the border color. I *HATE* it when some dweeb
|
|
programmer thinks I didn't mean it when I
|
|
AFA Gary J I'm not ignoring the user's choices :) I want to check the
|
|
speed because it
|
|
Matt DTS chose the border color I chose.)
|
|
AFA Gary J effects the performance of the program.
|
|
AFA Gary J The border color...well, I could grant you that one :)
|
|
Matt DTS Well, anyone can change the speed at any time, but I believe...
|
|
Matt DTS ...that the control panels only do so by calling TOBRAMSETUP as
|
|
described in the Firmware Reference.
|
|
Matt DTS You could patch that out and see if it tells you what you want to
|
|
know, even though you are playing
|
|
Matt DTS with the unguaranteed and the unsupported.
|
|
AFA Gary J Is TWGS and Zip speed settings in BRAM?
|
|
FeinDavid no. each has it's own setting. However, the ROM 3 has a vector
|
|
that tells
|
|
FeinDavid current system speed, 1, 2.6, or >2.6 MHz.. You also have to
|
|
fight with the
|
|
FeinDavid Zip GSX that has 15 different speed settings.
|
|
Matt DTS Yeah, and it would be nice if Zip or TWGS actually *used* that
|
|
vector, but they don't. <sigh>
|
|
AFA Gary J I'm not that concerned with super accurate speed detection. I
|
|
just need to
|
|
AFA Gary J tweek a few values if the speed changes.
|
|
Matt DTS If you're after accelerator speed, you don't want to check the
|
|
Control Panel. You want to check the
|
|
Matt DTS CDA menu. That's a different ballgame.
|
|
AFA Gary J CDA menu then :)
|
|
AFA Gary J (I think of them as the same.... but I know they're not)
|
|
Matt DTS CDA menu is easy. Patch the tool call _ChooseCDA.
|
|
AFA Gary J _ChooseCDA? Hmmm.....
|
|
Matt DTS Right Dave?
|
|
AFA Gary J Ok... I'll have to give that one a try.
|
|
AFL Dyfet Okay, let's give A2 a chance for his question....:)
|
|
AFL Dyfet GA A2...
|
|
A2GS Thanx....actually it's not a question...but a small bug I found
|
|
about
|
|
A2GS 20 minutes ago in 5.04....I've been able to reproduce it several
|
|
times...so I
|
|
A2GS just thought I'd mention it....
|
|
Matt DTS So mention it already!
|
|
A2GS keep in mind it's NOT serious......It seems that if you open a
|
|
window which
|
|
A2GS (just thought I'd get Matt a little revved up :)
|
|
AFL Dyfet :)
|
|
A2GS contains icons, and one of the icons on the right side of the
|
|
window is cut off
|
|
A2GS to a degree....the filename will remain cutoff when you scroll or
|
|
open the
|
|
A2GS window to display the whole icon....to see the whole icon in it's
|
|
normal form
|
|
A2GS you have to click on it (at which point things go back to normal
|
|
for that icon)
|
|
A2GS from what I've been able to find this problem only turns up when
|
|
you initially
|
|
A2GS open the window and the icon is cut off at that point (to begin
|
|
with)....
|
|
A2GS otherwise everything seems to be fine....one MAIN point which may
|
|
be relevant
|
|
A2GS (probably not) when I discovered this bug I was using some custom
|
|
system fonts,
|
|
A2GS but this problem never shows up in any other case when I use
|
|
5.04...so I don't
|
|
A2GS think it's the source (but then again who knows?)
|
|
A2GS GA
|
|
Matt DTS Oh. this is a Finder thing.
|
|
Matt DTS It's relevant - the Finder does not work well if the system font
|
|
isn't Shaston 8.
|
|
A2GS BTW (I still love 5.04, even with this bug) :)
|
|
Matt DTS Someone will probably print this out and show it to Andy, but it's
|
|
a low-priority thing unless we start
|
|
Matt DTS shipping different system fonts. GA.
|
|
A2GS The font was Shaston 8 (I believe, but wouldn't bet the farm on
|
|
it)
|
|
Matt DTS How is Shaston 8 a "different system font"?
|
|
A2GS excuse me....MY MISTAKE...I meant to say that I was using CUSTOM
|
|
SYSTEM ICONS
|
|
AFL Dyfet OIC
|
|
Matt DTS Oh. Well, then it sounds like a bug. I just tried to reproduce
|
|
it and I can't...
|
|
Matt DTS ...so send detailed mail on how to reproduce it to "ShrinkIt" and
|
|
Andy will see it. GA.
|
|
A2GS (I tried it for 2 different disks it it showed up in 3 cases (when
|
|
I opened
|
|
A2GS enough folders to get the right kind of setting))
|
|
AFL Dyfet What Matt suggests would be the best way to handle it....Okay,
|
|
let's get to
|
|
AFL Dyfet Mark's question. Go ahead, Mark...
|
|
MarkJnnngs Yes a couple of quickies. I'm writing my first desktop
|
|
application after makin
|
|
MarkJnnngs a pretty workable game which I uploaded last year. I only can
|
|
write in C.
|
|
MarkJnnngs I'm using Orca C and Design Master as my "Sample" code. I can't
|
|
find anything
|
|
MarkJnnngs there that handles modeless dialogs. Is there much C code
|
|
around?
|
|
AFL Dyfet Go ahead Matt...
|
|
MarkJnnngs And should I still use the Dialog Manager for modeless dialogs?
|
|
GA
|
|
Matt DTS Modeless dialogs are (generally) a pain in the patoot.
|
|
Matt DTS Anything you can do with the Dialog Mgr you can do with extended
|
|
controls and TaskMaster in a window
|
|
Matt DTS more easily and more flexibly.
|
|
Matt DTS DTS has several samples in C (APW C, though), the most
|
|
complex/robust of which is "Lister".
|
|
Matt DTS Although it doesn't directly compile under ORCA/C, you can get a
|
|
lot of good information from it.
|
|
MarkJnnngs OK I'l go about it that way.
|
|
Matt DTS There's other samples available as well, many here on AOL. GA.
|
|
AFA Gary J Yes, check our our source library.
|
|
AFA Gary J (All C files have a C: in the file subject heading)
|
|
MarkJnnngs Also, I downloaded 5.04 last night and I get I/O error $27 when I
|
|
unshrink.
|
|
Matt DTS Either your source or destination disks is physically bad. Try
|
|
unshrinking to different floppies.
|
|
MarkJnnngs I tried 2. I'll try a third, but on the second one I verified it
|
|
first
|
|
MarkJnnngs and it said it had no bad blocks.
|
|
Andy Stein Sounds like a bad download.
|
|
AFA Gary J It may be a bad spot on the disk the ShrinkIt file is on.
|
|
Matt DTS Try validating your shrunk files in the Finder and see if they can
|
|
be read.
|
|
Matt DTS ShrinkIt wouldn't return an I/O error unless it got one reading or
|
|
writing from the disk. A bad
|
|
Matt DTS archive (or download) can't usually create that error.
|
|
Apple Guru 3.5" disk??
|
|
MarkJnnngs Good idea. Andy, the game was called Propagannihilate.
|
|
MarkJnnngs Yes 3.5" disk
|
|
Apple Guru If the problem starts showing up more often, and on other disks,
|
|
your upper
|
|
Apple Guru head may have broken loose. (guessing due to problem w/verified
|
|
disk)
|
|
MarkJnnngs I did hear some unusual clanking sounds out of the drive, come to
|
|
think of it!
|
|
MarkJnnngs I have 2 3.5 drives; I tried switching the source and destination
|
|
disks and
|
|
MarkJnnngs the same error occurred.
|
|
AFA Gary J Try moving the source file to a different source disk.
|
|
AFL Dyfet It sounds like it's on the disk with the shrunk files...as Matt
|
|
suggested, a
|
|
AFL Dyfet validate from Finder should determine if that is the case...
|
|
Apple Guru error on same drive?
|
|
MarkJnnngs can't answer that for sure, AG.
|
|
AFL Dyfet Okay, let's give Parik a chance here :)...GA Parik...
|
|
AFA Parik how are the textfile technotes for nov & jan progressing? I have
|
|
the paper
|
|
AFA Parik versions but electronic is faster to access.
|
|
AFA Parik ga
|
|
Matt DTS As far as I know, they're in distribution, whatever that means.
|
|
Matt DTS I stayed up all night one night to get them done, but I'm not
|
|
responsible for getting them out the
|
|
Matt DTS door (thank God). Sorry.
|
|
AFA Gary J Both November AND January, Matt?
|
|
Matt DTS Yup.
|
|
AFA Gary J (great...I'll be looking :)
|
|
A2GS Buy a Quickie with In-Words and Scan them into E-form :-)
|
|
Apple Guru :)
|
|
AFA Gary J Not the kind of data that's quick to access, unfortunately :)
|
|
AFL Dyfet Okay, Jonah, what is your little ? :)
|
|
AFL Marty Jonah's cat does all his typing for him.
|
|
ShanoJ Well, yesterday I noticed that after going into GSBug and exiting
|
|
with a G,
|
|
ShanoJ whenever I had the caps lock key on and was typing, the speaker
|
|
would click
|
|
ShanoJ once for each keypress... Any explanations of that? Also, is it a
|
|
bug in GSBug
|
|
ShanoJ that it leaves the GR screen switched in instead of the text
|
|
screen?
|
|
ShanoJ (I don't use the caps lock key much... :)
|
|
Coach101 Geez, you just found that feature :)
|
|
AFA Gary J That's a feature.
|
|
Coach101 Not a bug.... At one point it (GSBUG) did it all the time (Cap
|
|
locks or not)!
|
|
Coach101 For me GsBUg has always left the screen that I "entered" from up
|
|
when I exited... What ahppaend
|
|
Coach101 in your case?
|
|
ShanoJ Well, if I'm in a desktop program, go into GSBug with the four
|
|
finger salute,
|
|
ShanoJ hit G to return, and then quit to the APW shell, the GR screen is
|
|
active and
|
|
ShanoJ NOT the text screen.... (oh, I did a \s before the G)...
|
|
Coach101 One more thing, when you hear those KeyClicks, keydn events will
|
|
*NOT* go to desk accessories.
|
|
AFA Parik (why not hit "R" to return?)
|
|
Dave Lyons (R is usually the best way to return)
|
|
Matt DTS G means "go" and doesn't necessarily restore the mode from when
|
|
you entered, Jonah. No duh. :)
|
|
Coach101 Did you try exiting with an R; thats what I do and it seems to
|
|
work right. I just used a G and it did
|
|
Coach101 not work correctly for me.
|
|
ShanoJ Hmm... Kinda weird that it kept doing that even after I exited
|
|
(clicking, that
|
|
ShanoJ is).
|
|
ShanoJ Hmm... Okay, I'll start using R then... Think I need to be sent to
|
|
Remedial
|
|
ShanoJ Debugging Tools 101? :(
|
|
ShanoJ Didn't know about Ctl-T in NiftyList, and now this... :(
|
|
Coach101 Did you catch the comment about the KeyClicks meaning that Key
|
|
down events are not going to
|
|
Coach101 desk accessories. That is the reason for the KeyClicks, to let
|
|
you know things are not normal.
|
|
ShanoJ Yup, caught that. I knew that happened when GSBug was switched in,
|
|
but didn't
|
|
ShanoJ think it should continue after I've G'd. Then again, it might be
|
|
the G that's
|
|
ShanoJ doing it...
|
|
AFA Parik come to kansasfest and you can learn alllllllllll about debuggin
|
|
ShanoJ Planning to, Parik! :)
|
|
Matt DTS Anything else tonight?
|
|
AFA Gary J What's the proper procedure for patching tools?
|
|
AFA Gary J (Having never researched that one :)
|
|
Matt DTS Do it carefully and don't tail-patch. :)
|
|
Matt DTS (Of course, you might have to tail-patch. Dave?)
|
|
AFA Gary J (Like ChooseCDA, for example :)
|
|
AFA Gary J DA Lyons should know this stuff :)
|
|
Dave Lyons OK, I'm here....
|
|
Dave Lyons Gary, it's not a well-defined area. What do you want to patch?
|
|
AFA Gary J ChooseCDA, of course :)
|
|
Dave Lyons If you're patching at System.Setup time, life is good. You need
|
|
to use GetTSPtr to determine
|
|
Dave Lyons where & how big the function pointer table is for the tool set you
|
|
want to patch,
|
|
AFA Gary J An application needs to do this, temporarily, Dave.
|
|
Dave Lyons Oh, for an application, temporarily: Use GetTSPtr to get the
|
|
current FPT for that tool, allocate
|
|
Dave Lyons a chunk of memory full of zeroes the same size as the old FPT
|
|
(4*the first longword), fill it with
|
|
Dave Lyons zeroes & copy the first longword, and fill in the entries for the
|
|
tools you want to patch--and feed
|
|
Dave Lyons that to SetTSPtr.
|
|
Dave Lyons Your patch will go away when you do a TLShutDown.
|
|
AFA Gary J Thanks, Dave. (good explanation)
|
|
|
|
AFA JoeyS Wanna try a Basic.System question? :-)
|
|
DangardAce Basic.System! That's prehistoric.
|
|
AFA JoeyS :P~~ Pete...
|
|
DangardAce Joe, just put all your gosubs first and use line numbers that are
|
|
powers of 2.
|
|
AFA JoeyS :P again, Pete. My question is a little stranger than THAT...
|
|
AFA Gary J Pete :)
|
|
DangardAce Okay then, just use 1 character variables.
|
|
DangardAce :)
|
|
Matt DTS Joey: Cough up $100/year and Software Licensing will give you the
|
|
source to BASIC.System. :)
|
|
AFA JoeyS Don't push me; it's been a bad year...
|
|
AFA JoeyS LOL Matt... gee, thanks.
|
|
DangardAce Or better yet, don't put spaces in REM statements.
|
|
AFA Gary J (just don't use REM statments)
|
|
Apple Guru <==-- must have missed something, but maybe not....I think I smell
|
|
BASIC here:(
|
|
AFA JoeyS (the question, was, in theory, use of m/l subroutines in
|
|
Applesoft, butttt...)
|
|
DangardAce There used to be this great program called Basic Enhanced Software
|
|
Tricks..
|
|
DangardAce it let you compress lines to the maximum amount, 256 chars. per
|
|
line..
|
|
Apple Guru B.E.S.T. was for DOS 3.3.....yeuch
|
|
AFA Gary J :)
|
|
DangardAce Too bad no one ever revamped it for ProDOS.
|
|
Apple Guru Sensible Software sorta folded......
|
|
DangardAce I thought they were still selling Sensible Grammer..
|
|
DangardAce Things haven't been the same since Quadrant 6112..
|
|
Apple Guru SS is still around, but is running out of owners basement now
|
|
DangardAce like most Apple II companies
|
|
AFA JoeyS Oh, well, okay. :)
|
|
AFA JoeyS So anyone want to take a stab at the Basic.System question??
|
|
:-)
|
|
AFA Gary J Go for it, Joey :)
|
|
DangardAce What, meshing ML with AppleSoft?
|
|
AFA JoeyS LOL. Okay. I have an amper routine, &GET, that's supposed to
|
|
read characters
|
|
AFA JoeyS (primarily intended for reading from disk) as a string, and return
|
|
the C/R
|
|
AFA JoeyS terminated string to a passed var. That all works just fine.
|
|
Then I decided
|
|
AFA JoeyS I wanted to add some code so that it'd set a flag when it read in
|
|
a null (end
|
|
AFA JoeyS of a record in a random access file). That doesn't work nearly as
|
|
well; the
|
|
AFA JoeyS code just "jumps" to the next record. The m/l code in question
|
|
looks like...
|
|
AFA JoeyS jsr $fd0c ; get char / and #$7F / beq got_null
|
|
AFA JoeyS The routine never ever gets to get_null. I know the code is fine,
|
|
since if I
|
|
AFA JoeyS invoke the routine without a Basic.System READ in effect (i.e.
|
|
typing chars at
|
|
AFA JoeyS the keyboard), it will correctly set the flag when I type ^@. Any
|
|
ideas?
|
|
Apple Guru Are you passing back a C/R for a null string?
|
|
AFA JoeyS Actually, I wanted to treat the null as a terminator the same as
|
|
C/R, and
|
|
AFA JoeyS therefore return the chars I'd read to that point, but also set
|
|
the flag.
|
|
AFA JoeyS That's all easy once I can actually convince the routine to give
|
|
me the nulls
|
|
AFA JoeyS in the first place.
|
|
Apple Guru AND #$7F.....BEQ NULL, BMI NULL
|
|
AFA JoeyS If I mask the high bit the BMI should always fail, yes?
|
|
AFA Gary J BMI Null? It should never be minus.
|
|
Apple Guru Yes.....It shouldn't be, but I bet it is (for some strage
|
|
reason)
|
|
AFA Gary J (AND #$7F takes care of that)
|
|
AFA Gary J (Unless of course, you've set a 16-bit accumulator :)
|
|
Apple Guru Running on 6502 or 65C02 or 65816?
|
|
AFA JoeyS Uhh, well, I see no reason why the processor should ignore my AND
|
|
#$7F... :-)
|
|
AFA JoeyS This is pure 6502 code -- not C02, not 816.
|
|
Apple Guru 6502 ....SOME manufacturers chips had bug in flag setting on
|
|
AND's
|
|
AFA JoeyS LOL... right. No, the code itself would seem to be functioning
|
|
correctly,
|
|
AFA JoeyS since as I said, it works as expected when I give it a null from
|
|
the keyboard--
|
|
AFA JoeyS only when READ'ing from a disk file does it not do so.
|
|
AFA JoeyS (and actually, the code loop jsr $fd0c ; get char / jsr $fdda ;
|
|
prbyte /
|
|
AFA JoeyS jmp start ; loop never displays 00, either, when reading from
|
|
disk)
|
|
AFA Gary J Have you tried setting a break point there and seeing just what
|
|
value IS
|
|
AFA Gary J returned?
|
|
AFA JoeyS Yeah, well, see my previous line, Gary, for what I did try. :)
|
|
AFA Gary J It must not be zero, or it just may not be going to your routine
|
|
at all.
|
|
Apple Guru Just for yuks......test for NEG after your AND. Pdos might be
|
|
messing you up
|
|
Apple Guru if it works right from the keyboard
|
|
AFA JoeyS Shrug, I can try it, couldn't hurt. But I'm honestly not sure
|
|
what that will
|
|
AFA JoeyS accomplish after the AND. But who knows?
|
|
AFA Gary J Just because it works for the keyboard doesn't mean it will work
|
|
from disk.
|
|
AFA JoeyS Well, I know that, Gary. :) I want to find out WHY it doesn't
|
|
work from disk,
|
|
AFA JoeyS and more importantly, how to make it do so. :)
|
|
AFA Gary J (I know you know, Joey :)
|
|
Apple Guru <-- betting that Hi bit is set
|
|
AFA Gary J Obviously, the disk read is returning something other than a 00,
|
|
or your
|
|
AFA Gary J code is somehow being missed.
|
|
AFA Gary J (bypassed, branched around, or otherwise avoided)
|
|
AFA JoeyS Well, like I said, a loop of get-byte, print-byte, loop when
|
|
reading from the
|
|
AFA JoeyS disk never returns the 00's used for record padding... even though
|
|
Block Warden
|
|
AFA JoeyS definitively shows that they're there, and my datafile isn't
|
|
messed up or
|
|
AFA JoeyS anything.
|
|
Matt DTS Are you using MLI read calls or Basic.System read calls?
|
|
AFA Gary J Are you using MLI in your asm code?
|
|
AFA Gary J You could test for eof, and feed your routine a zero.
|
|
AFA JoeyS I wouldn't get EOF, since I'm NOT at EOF, I'm at EOrecord.
|
|
AFA Gary J Oh, sorry. Missed the bit about EOrecord.
|
|
AFA JoeyS I'm using jsr $fd0c (monitor get char), which is the same call
|
|
used by
|
|
AFA JoeyS Applesoft's GET command. I want to avoid the overhead of zillions
|
|
of reads.
|
|
Apple Guru you can't OPEN, READ, etc from AL calls to B.S. MUST use MLI
|
|
Apple Guru per P8 tech manual
|
|
Matt DTS BI may be using $00 as a newline character so reads terminate.
|
|
Normally BASIC programs don't want to
|
|
Matt DTS get returned zero bytes, so Basic.System undoubtedly filters them
|
|
somehow.
|
|
AFA JoeyS Hmmm, that's an interesting thought, Matt. Should I try disabling
|
|
newline
|
|
AFA JoeyS mode totally before entering the routine?? (but that brings up the
|
|
same
|
|
AFA JoeyS problem, namely that of repetitive MLI calls, which I want to
|
|
avoid for
|
|
AFA JoeyS performance reasons)
|
|
Matt DTS It's probably not Newline mode; it's probably done inside
|
|
Basic.System.
|
|
Apple Guru Matt...thats why P8 tech manual says MLI cals for read/write
|
|
AFA JoeyS Oh. Ummm, okay, but when using a GET I$ command (Applesoft GET)
|
|
in a loop
|
|
AFA JoeyS purely in Applesoft (s-l-o-w...), I$ =does= equal "" (null) when I
|
|
read a null,
|
|
AFA JoeyS and as I said I've traced the Applesoft code and found it to use
|
|
the same
|
|
AFA JoeyS jsr $fd0c routine. IGSC...
|
|
Matt DTS Did you open the file with the same record length both times?
|
|
AFA JoeyS Yup. All parameters of the OPEN, READ, and even CLOSE commands
|
|
were exactly
|
|
AFA JoeyS the same. Just that in one version I used something like
|
|
AFA JoeyS & DO: & GET I$: ? I$: & STOP IF PEEK(222)=5 (peek(222) = 5 is
|
|
the condition
|
|
AFA JoeyS I supposedly set up when I read a null), whereas in the other I
|
|
use
|
|
AFA JoeyS & DO: GET I$: ? I$;: & STOP IF I$=""
|
|
AFA JoeyS The first doesn't work, the second does. <shrug>
|
|
Dave Lyons I've been browsing thru the BASIC.SYSTEM source, and I have noted
|
|
that there *is* special handling
|
|
Dave Lyons for the GET statement.
|
|
AFA JoeyS There is?? WHERE??
|
|
Dave Lyons Inside BASIC.SYSTEM there is...in the routines that handle getting
|
|
input from disk instead of
|
|
Dave Lyons from the keyboard. Apparently during the here's-a-statement
|
|
Dave Lyons trap it notes the command and stores a $BE into PROMPT ($33) if
|
|
it's a GET. The input stuff
|
|
Dave Lyons checks to see if $33 contains $BE & behaves differently.
|
|
AFA JoeyS (Matt smiles and reminds me of the $100 Basic.System source code
|
|
offer)
|
|
AFA Gary J :)
|
|
AFA Gary J Check "Beneath Apple ProDOS" instead. It's only around $20 :)
|
|
Apple Guru :-)
|
|
Apple Guru Gary....Where can I get a NEW copy of BAP????
|
|
AFA JoeyS Oh WOW... that very well could be it; there's another similar
|
|
weird thing that
|
|
AFA JoeyS happens when trying to output via COUT, and it also involved the
|
|
Prompt ZP
|
|
AFA JoeyS loc. I'll have to try this puppy out... :))
|
|
AFA JoeyS (Gary: I've got BAP, as well as Little's "Advanced ProDOS for
|
|
Programmers";
|
|
AFA JoeyS neither of 'em extensively cover the BI)
|
|
AFA JoeyS Dave: I'll run now and try this out, and drop you a note with the
|
|
results
|
|
AFA JoeyS either way, 'kay?
|
|
Dave Lyons Ok.
|
|
AFA JoeyS Thanks! Later, all...
|
|
Dave Lyons Yeah, you may be able to just store a $BE into $33; it shouldn't
|
|
get overwritten until the next
|
|
Dave Lyons Applesoft statement executes, or until you call GETLN.
|
|
AFA JoeyS ...right; in another routine where I wanted to output via COUT, I
|
|
think I had
|
|
AFA JoeyS to LDA #0, STA $33 to get it to work right; as you said, $33
|
|
stayed intact
|
|
AFA JoeyS while I was in my routine.
|
|
AFA JoeyS I'll get back to ya' in mere minutes... :)
|
|
AFA JoeyS Byeeeee.
|
|
AFA JoeyS <--- (woo, excited, my two week old problem may be solved :)
|
|
|