acmfiu@serss0.fiu.edu (ACMFIU) (05/12/91)
the following is a discussion that took place on america online regarding the hardware ProDEV DDT debugger. this debugger exists for the IIe and IIgs. albert chin -------------------------------------------------------------------------- America Online APPLE II DEVELOPMENT FORUM CONFERENCE LOG Tuesday, April 2, 1991 10:00 p.m. Eastern Time Topic: ProDev DDT Debugger, with special guest Chuck Kelly Forum Leader: Dave Sugar (AFL Dyfet) AFL Dyfet Okay, good evening everyone, and welcome to the Apple II AFL Dyfet Development Forum. Tonight we will be discussing debugging AFL Dyfet techniques. Our special guest is Chuck Kelly, who will be AFL Dyfet telling us about the Prodev debugger, which is a hardware product. AFL Dyfet We will be using PROTOCOL tonight, so if you wish to ask a AFL Dyfet question, enter a '?' on a line by itself, and if you wish to AFL Dyfet comment, enter a '!' on a line by itself. You will each be called AFL Dyfet upon to speak. I will now turn the floor over to Chuck, who AFL Dyfet will tell us a little more about this product :)...Go ahead, Chuck... Prodev Thanks. Prodev I will give just a brief description of the ProDev DDT for the benefit of Prodev those who are not familiar with it. Etmusta :) Prodev The ProDev DDT has the normal features you find on most debuggers; Prodev Tracing, break points, register and memory displays. Prodev What makes the DDT different is the addition of hardware. Prodev For those of you still writing code for the Apple //e, the DDT does not require Prodev any memory space. Prodev It has the ability to do a "Break on Address" that watches every address in Prodev real-time and interrupts the running program when the specified address appears Prodev This allows you to find those nasty bugs that cause part of your program to be Prodev mysteriously overwritten. It also works as a real time breakpoint for ROM code. Prodev Pressing a button to interrupt a program. Now you can see where your program Prodev went when in got lost. Prodev You can also count the number of clock cycles required to run you programm Prodev between two address you specify. Prodev That's it in a nutshell, now if you have any specific questions I will do my Prodev best to answer them. AFL Dyfet Okay, Scott, Ga :) AFL Scott Welcome, Chuck! What advantage does the board provide over GSBug? Also, is... AFL Scott this the same product that was in beta over 2 years ago then apparently AFL Scott scrapped? AFL Scott GA Prodev Scrapped? Never! AFL Scott (note that I said _apparently_) Prodev Yes it is the same product that was in beta over 2 years ago, sort of. Prodev We really have two products here. The DDT8 for the Apple //e and the DDT16 for Prodev the IIGS. Prodev The DDT8 has been available for several years. The DDT16 is the new kid on the. Prodev block. Prodev As to advantages over GSBug, I mentioned a few in my description... Prodev A "stop on address" breakpoint.. Prodev A real-time ROM breakpoint... Prodev A button to interrupt your programms.. Prodev And a hardware timer. Prodev GA AFL Scott (Followup, if possible) AFL Scott Can you explain the value of a "stop on address" breakpoint in the GS AFL Scott environment? Prodev A "stop on address" breakpoint is the type of function you would normally.. Prodev associate with a logic analyzer. Prodev What it allows you to do is enter an address and have the DDT interrupt your Prodev program when that address appears on the buss. This can be invaluable if... Prodev your code is being stepped on from the outside and you have no idea of where Prodev the stuff is comming from. It really is the only way to debug such a problem. Prodev GA AFL Scott Ok... Thanks! Sounds like a good idea to me! :) Etmusta Sharp! I'm more familiar with soft-buggers, for example using the 680x0 Etmusta supiv mode to control a process under OS-9 Etmusta Please describe the hooks & paths of DDT into the 65XXx Prodev On the DDT8 the hooks are all made via the IRQ & BRK vectors by using the INH Prodev line to remove the //e ROMs and replace them with the DDT ROMs. On the IIGS Prodev this was not possible, so we replace 2 vectors in GS RAM. The NMI jump at Prodev $00/03FB and the BRK handler at $E1/0070. Prodev I am also very familiar with the 680x0 so if you have any specific comparisons Prodev I might be able to comment. GA Etmusta Hmm, can you think of an instance which would circumvent the GS hooks ? Prodev Yes, but not under normal circumstances where you are debugging your own code. Etmusta :) Prodev If you load in an unknown program it may overwrite on or both vectors. On your Prodev own programs this can be avoided, of course. Prodev If I may interject here. AFL Dyfet GA Chuck Prodev I am always open to suggestions for new features to add to the DDT.. Prodev I would like to know what debugging features you would find useful. If I get Prodev some good suggestions here I will try to include them in the next version. GA Matt DTS Well, the current beta GSBug has a hook you can patch into so you can get called from GSBug, so Matt DTS you can make the two work even better with each other. GA. AFL Dyfet Before we get to Etmusta's Question, could you tell us about AFL Dyfet pricing and how to order the product? Prodev Hooking into GSBug and making the two products work together sounds like a .. Prodev great idea. Prodev The DDT8 & DDT16 each sell for $189.00 + $5 for 2nd day air shipping.. Prodev You may order by phone at (313) 241-2786 or mail at.. Prodev ProDev, Inc. Prodev PO Box 162 Prodev LaSalle, MI 48145-0162 Prodev Visa & MasterCard accepted. Prodev ga AFL Dyfet Okay, thank you Chuck...Go ahead Etmusta.... Etmusta How does the DDT appear to the user, ie:std i/o paths while debugging? Prodev I'm not sure what you mean by std i/o paths, could you elaborate. Etmusta first, what does it look like, on screen lines etc. Etmusta second, how does the operator interface interact with debugged code on screen e Etmusta & keyboard etc...? Etmusta Or does it have a keypad & display of its own? Prodev I uploaded a file that contains a sample screen. If I can remember where I Prodev put it. Basically it pops up in a text screen with several windows that display Prodev everything from the stack to the register contents, very similar to GSBug, or Prodev should I say GSBug is very similar to the DDT. AFA Gary J (It's in the "Articles and Transcripts(TM)" area of our software library (ADV)) AFA Gary J (The info sheet you uploaded, that is) Etmusta I'll check it out ! Prodev As for the interface, I forgot to mention one very important aspect, with the Prodev DDT you can set use a remote terminal (or computer with term software) to Prodev enter the commands to the DDT. The DDT will send its output to the terminal Prodev and your programs ouput will be visible on the host machine. Very useful for Prodev debugging graphics. GA Etmusta Sounds like you should add a digit to the price ! AFL Dyfet Remote? NEAT!! And yes, VERY useful :)...GA Wankerl, you have the floor now. JWankerl How would you upgrade the DDT software? Is it on ROMs? Separate software? GA Prodev Yes, the software is on ROM, we send you a new ROM and you send back the old Prodev one. Unless you don't feel comfortable pluggin in chips in which case you can Prodev send back the entire board and we will do it for you. Prodev I always try to keep the upgrade prices as low as possible.. Prodev Usually around $15..GA JWankerl Okay, that's what I wanted to know, Thanks. GA AFL Dyfet Okay, Scott, GA... AFL Scott Does this board work in any slot and is it compatible with GS accelerators? Prodev YES and YES. AFL Scott Good and GREAT!!!:) Thanks! AFL Scott Looks like I've got something to get! JWankerl I assume the slot has to be set to "Your Card" to work? Prodev The transwarp GS should be set for slow speed. Prodev Yes the slot must be "Your Card". Etmusta How about visability of/into other cards? (In what context [s] ?) Prodev If you are talking about tracing code in other cards, it is possible as long Prodev as the other card does not employ bank switching to fit more that 2k into the Prodev 2k ROM space. GA. AFL Dyfet Okay, go ahead, Etmusta... Etmusta are there any provisions Etmusta for argument passing (to modules) or must my code provide this Prodev If you pass arguments on the stack, we do not have a specific command that... Prodev would allow you to push information onto the stack. The stack may be written Prodev to of course. So you could do it. GA Etmusta most of you have guessed, Im still a //e person... but with products like this Etmusta .... Etmusta ga AFL Dyfet Okay, GA Parik... AFA Parik TWGS must be set to slow? Doesn't that defeat purpose of TWGS? 1 mhz or 2.8? During the debugging AFA Parik process or whenever the card is installed in the system? ga AFA Parik (and if it doesn't violate any patents, why must the TWGS be set to slow?) Prodev TWGS must be set to slow during the debugging process only...Why? Because the Prodev TWGS does not slow down fast enough when an interrupt occurs and the DDT timing Prodev is thrown off. This only occurs when tracing code, and not all of the time.. Prodev I did not think it was that big of a deal so I did not really dig into the TWGS Prodev to try and find he exact cause. Prodev When you are debugging code is it really necessary to have the accelerator .. Prodev active? GA AFL Dyfet Okay, GA Scott... AFL Scott Are there different code tracing speeds and is the trace speed at its fastest AFL Scott reasonably quick? Prodev There are different 'trace' commands... Prodev The command that shows you the register contents after each instruction is Prodev slowed by the display routines. I did include a trace command that only Prodev displays the register information at the end of the trace steps... this Prodev operates much faster.GA AFL Dyfet GA Etmusta Etmusta Figuratively, is a 'speed control pot' possible on th DDT, or do you refer to Etmusta dynamic 'slot dependent' speed change problems, by the accel ? Prodev I have not hooked up my logic analyzer to the TWGS so I am not 100% certain Prodev about what causes the problem. But I do know that it is caused because the TWGS Prodev does not go to the 1Mhz speed in the required number of clock cycles for the Prodev DDT to synchronize with the system clock. The same thing happens on the ZipGSX Prodev if you have the slot speed switch set for Hi speed. Prodev GA Etmusta One for the wishlist, with accel speeds up all the time ... Etmusta We want miracles, Huh? Etmusta :) AFL Dyfet Okay, GA Scott... AFL Scott Back to breakpoints for a sec... is there a way to "protect" an area of memory AFL Scott so references in that area are trapped? Prodev Yes, as long as you do not run your program in real-time. Prodev You can set up ranges that prevent access (reads or writes)..... Prodev OR areas that the code must remain in. GA AFL Dyfet Okay, GA Etmusta.. Etmusta (assuming) what processor does (do) the DDT (s) use & at what speeds ? Prodev The DDT does not contain an onboard CPU. All processing is done with the host Prodev CPU.GA Etmusta head spinning :) ;( :) Etmusta ga AFL Dyfet Okay, do we have any more questions for Chuck tonight? AFA Gary J Exactly how does the terminal or external video interface with the card? I AFA Gary J had a borrowed one to play with for a few days, and don't recall seeing any AFA Gary J interface location on the card. (I must confess, that I didn't read all the AFA Gary J documentation, either :) AFA Gary J GA AFA Gary J (This was on a IIGS, BTW) Prodev The terminal connects to the serial port of the host (GS or //e). Prodev Any interface that supports the Pascall 1.1 interface will work. GA AFA Gary J Oh! (That's too easy). Thanks. Etmusta Compliments ! AFL Dyfet What kind of external terminal does it support? Are we talking about something AFL Dyfet like vt52 emulation/etc? Prodev Good question. Right now it talks to any dumb terminal. But I would like to Prodev add support for something like VT52 or VT100 so that I can do the window Prodev display on the terminal just like I do on the host machine. I just have not Prodev decided on which terminal standard to support. Maybee I could get some Prodev suggestions? GA AFL Dyfet I would say go for VT52 because it's fast and its easy to find something that AFL Dyfet supports it, and also do ANSI/VT100... AFA Gary J I'd say VT100, too. Etmusta Wyse - ease... AFL Dyfet I wouldn't worry about the 'oddball' things like Hazeltine, etc :) Prodev Maybee I could find a public domain VT100 emulator to include with the board Prodev just to make sure the user had what he needed. Etmusta I have trouble finding _just_ a VT52 anymore, 100 up ... Etmusta but generic dumd lives ! JWankerl Yah, I'd leave dumb terminal support in and VT100 (or whatever) as an extra. Etmusta emulation-emulation could be tricky... AFL Dyfet GA Gary... AFA Gary J Exactly how does the external terminal mode function? Is it something that is AFA Gary J turned on and off, and is the port on the IIGS selectable (modem/printer)? AFA Gary J (Like, what if you're debugging communication software :) Prodev You enter a command on the host computer to the DDT to tell it to go into Prodev terminal mode and from then on all commands are sent and receive via the Prodev serial port. There is also a command that sends only the output of the DDT Prodev to slot1 and still gets its input from the host keyboard incase you do Prodev not have access to a 2nd computer or terminal. GA AFA Gary J But, could... AFA Gary J I have my second computer connected to slot one (and have it configured as a AFA Gary J modem in the control panel) and have the DDT function in terminal mode? Prodev If you tell the DDT to use terminal mode it sends and receives to slot #2.. Prodev If you tell the DDT to use printer mode it sends to slot #1 but receives Prodev its commands from the host keyboard. There is currently no way to use slot 1 Prodev as remote input. gA AFA Gary J Ok. That's what I was wondering. Thanks. Etmusta I once automated a CPU socket emulator to do board test for intermittents Etmusta (//e host of course), does the DDt have things like block mem tests, fills Etmusta etc. ? Prodev NO, and the reason is , I did not want to duplicate functions that were Prodev available in the system monitor.. Ga Etmusta sensible AFL Dyfet Okay, anyone else? Prodev I would be very interrested in getting suggestions for Prodev commands to add to the DDT. If you have any suggestions Prodev please Email me at 'PRODEV'. This is your chance to Prodev get the commands you want into a debugger. Prodev I am also very interrested in the idea of making GSBug Prodev and the DDT work together. Anything we can do to Prodev inprove programming on the GS sounds like a good Prodev idea to me. GA AFL Dyfet Thank you for comming by to join us tonight, Chuck! AFA Gary J Yes, thank you! Etmusta "& thanks for your support" Prodev. Prodev It was my pleasure, see you all at the A2-Central summer conference? AFA Gary J Many of us, I'm sure. AFL Dyfet :) AFL Dyfet Okay, any last questions or comments?? :) Prodev Matt DTS, could you email me some info on what I need to do to get GSBug Prodev and the DDT on speaking terms? Matt DTS Chuck, I don't have it. You need to send Email to Dave Lyons and ask for it. Prodev OK. Matt DTS (And tell him to put it in the release notes so you don't have to bug him next time.) BurgerBill Q: for ProDev... Is there an init for the ProDev GS yet? BurgerBill So I don't have to type PR#4 to start it up anymore? Prodev OH RATS, I knew I was forgetting something. I will get right on the init Bill Prodev and upload it as soon as possible, sorry about that. BurgerBill He he he he he he AFL Dyfet :) Prodev got it, thanks for reminding me.