[comp.sys.apple2] IIe/IIgs ProDEV DDT debugger

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.