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.