[Prev][Next][Index][Thread]
ARDI bares its soul
Dear Folks,
Here are the only marginally editted Notes files that we have used
internally to see what works and what doesn't. Please don't tear into us for
the sloppy language and vague comments; they were never intended for
publication. However if you get some useful information out of them, more power
to you. Some of the applications were tagged with their slang name, I believe
I've removed the most egregious offenders.
Stef and Tim have been "idled" (i.e haven't worked for ARDI) since
sometime around the beginning of September. This is because ARDI ran out of
money. It looks like we'll be able to sell enough copies of Executor-MSW to
hire them back in February. To have them back will require that we ship 100
copies a month.
You will notice many games and demo programs in our Notes files. This
is because we bought a CD-ROM containing a bunch of PD stuff. In the early days
of Executor we would try to run anything and everything, although without
HFS_Reader we had to ship everything across by either kermit or FTP and this was
a pain. Back then we didn't care where the "bug"s came from (I put bug in quote
because technically we're seeing "incompatibilities" which appear to the end
users as bugs but frequently have more to do with the lack of a hard spec for
what a Mac should do), we were looking for "penetrating" bugs, stuff that we
screwed up the implementation of and so when we fix a penetrating bug it clears
up the behaviour of many applications at once.
About a year ago it looked like we would be selling our company to
another company. The deal was supposed to be a real good one for both sides.
At that time we were lent the top 10 applications selling for the Mac to grind
away on. The deal fell through and the applications were returned. We're an
honest company and so when they went away, they really went away. Unfortunately
the deal had lulled us into a false sense of financial security, so when it
turned sour ,we raced to get a product on the market (we had withdrawn ROMlib on
the Sun3 to make the other party to the deal happy, it wasn't selling very well
anyway since the Sun3 was obsolete). Executor-MSW is the results of our
efforts. All the "bug"s related to Microsoft Word 4.00D were fixed (we bought
our own copy of Word 4.00D and Excel 3.0) and we spent a bunch of time
Nextifying the product. The beta period lasted about three months, but it
overlapped with development so it wasn't a true beta.
Without further ado, the remainder of this mail message is our barely
editted (removed obscenities and stuff covered by non-disclosure agreements)
Notes files.
--Cliff
p.s. Come see us at NeXTWorld. Bring software you haven't seen mentioned. We
can run it under Executor-MSW Version 1.0 which is for sale and whatever we have
running internally by then (we hope to show a fairly well running version of
Word 5.0 there).
######################################################################
Green_Notes: These are all programs that have run well under Executor
on our Sun3/60 where we do development work. There is
no guarantee that they'll work on the NeXT because they
may do 24-bit addressing which we do not yet support on
the 040 because we can't do a clever hack that works on
the 020. Comments within [] are NeXT related and are done
off the top of my head.
1000miles: [has NeXT problems]
BinHex5.0: no known problems
Canfield2.0: [requires Configuration File on NeXT, but works]
Color Canfield: [same as Canfield 2.0, no Color support, yet]
Mines Version 1.01: works [is shipped with Executor-MSW]
macyahtzee: stomps location 0xe (It does this on a Mac+ too)
[shipped w/ Executor-MSW]
Motor Bike: after a crash it does a spooey copy (on the Mac+ too)
[shipped w/ Executor-MSW]
ShanghaiDemo2.0: no known problems
BackGammon: [NeXT problems, works most of the time but will die
every once in a while, very annoying when playing a game]
DeckEdit: no known problems
eartrainer: useless without sound, but runs
hangman-9.0: no known problems
hearts1.6: no known problems
killer frogs from planet X demo: works fine but you can't print out the
order form (no printing support, yet)
klondike3.3: [may need configuation file on NeXT] works fine on Sun3
reversi: no known problems [shipped with some beta copies of Executor-MSW]
risk: no known problems [aside from the configuration file naming bug
that Shane Artis reported and I commented on in
the net (long story, but remove the ".execonfig"
from the configuration file name if you want
your countries to blink]
stuntcopter1.2: kinda slow because of all the animation it does [should be
MUCh faster when NeXTStep 3.0 comes out and we take advantage
of some stuff they're putting in, ships w/ Executor-MSW]
units: You've probably not seen this one, it was written by Walt Leipold and
is great for converting, among other conversions, Tons of TNT to BTUs.
Runs fine under Executor [would have shipped w/ Executor-MSW but it
is too big; we ran out of disk space, let's hope the cost of ED disks
plummets].
vp: (video poker) You've almost definitely not seen this. I, ctm, wrote it.
It runs fine under executor except it originally was a Desk Accessory
until I applicationized it for the purposes of running it under Executor.
It will return to it's DA self when we support Desk Accessories.
#########################################################################
Yellow_Notes: These are applications that "limp": they do all the initial
setup and then start dispatching events. Beware: "limping"
is very broad. An application that dies as soon as you pull
down any menu (i.e. try to do anything at all) is defined as
limping, as is an application that works fine except dies
when you hit alt-shift-command-question mark (not totally
true, there's an undocumente Microsoft Word command that
displays the authors of MSW that blows up under Executor-MSW
and we consider MSW to fit in green).
COMPLETE APPLICATIONS
Microsoft Word v5:
globals:
0x6f4 ProcPtr JFLUSH (read)
0x4 word (read) (also done on mac)
0x6 word (read) (also done on mac)
0xe word (write) (also done on mac)
0x16a long
0xa7c long
0x28e word
0xa50 long
[there are more problems than are listed here: Things are changing
every day. As of Jan 13, 10:44 p.m. we have found that it really
wants "EventAvail" to return true. If it doesn't the pcode engine
"jumps the tracks". Bill has demoed this by making sure that there
are some mousedown and keydown events and everything goes well until
there are no more events. This may be due to our suspend and resume
event code]
Microsoft Excel v3.0
--- globals ---
0xA0A TopMenuItem
0xA0C AtMenuBottom
0x11C
0x174
0x004
0x006
0x1D2
0x6F4
Alert "Filename is not valid" appears on startup. (bill 12-12-91)
Aligning a cell and then undoing the alignment via the edit menu
sometimes leaves the edit menu up. (bill 12-19-91)
Bringing up "Show Info" window kills it. (bill 12-12-91)
0x12bba6 <end+634178>: movel 0(0(a2))[d0.w],a2@
(gdb) p/x $a2
$5 = 0x001262aa
(gdb) p/x *$
$6 = 0x187c000a
or
0x12bb98 <end+634164>: movew 0(a0)[d0.w],a2@-
Other window stuff causes similar problems in the same place:
closing original window (bill 12-12-91)
opening a chart (bill 12-17-91)
show clipboard (bill 12-17-91)
new from file menu and then chart (bill 12-19-91)
About box is missing a picture. (bill 12-18-91)
PixMaps are to be converted to BitMaps (IMV-85)
Typing a '/' right away causes MenuSelect to be called. (bill 12-12-91)
Zooming erases a region which doesn't get updated. (bill 12-12-91)
Microsoft Excel v2.2a 25-Sep-89:
--- globals ---
It copies blocks of page zero and restores them later.
0x000 nilhandle a0 0x11ddfa
0x052 ??? word, near 0x11de02, when quitting after '/'
0x11C UTableBase long, d#1524
0x15C SEvtEnb d#164859?: writes to SEvtEnb
0x1D2 UnitNtryCnt word
0x178 ??? long, trying to show clipboard, 0x176502
0x36A ??? long, 0x11dcfe
0x372 ??? word, 0x11dce8, passed to OffsetRgn as dv
0x374 ??? word, " , passed to OffsetRgn as dh
0x3E4 ??? long, 0x11dcfe, passed to OffsetRgn as rh
--- General info ---
Note the fact that it can't get a KCHR resource
is acceptable with our implementation of KeyTrans.
Clover commands use ScriptUtil (Transliterate) (IMV). (29-Jul-91)
Typing a '/' right away causes MenuSelect to be called. (23-Jul-91)
When reading files, it needs to run with -clock in order to print
the percentage read in the upper left corner. Can't set
ROMlib_memnomove and run with -clock, though.
gdb exhausts virtual memory when breaking in osevent and setting
memnomove. This happens even when the program is idle. (24-Jun-91)
closing original window calls R_BlockMove() which calls
bcopy(src, dst, cnt)
src = 0x00114340 dst = 0x0000007c cnt = 0x00000050 (23-Jul-91)
stef: 6-Jun-91:
Windows double clicked in the grab region zoom. This is normal,
but it checks Ticks, so running without -clock is somewhat strange.
--- Menus ---
Icon:
File:
New.../Worksheet hangs when done after closing Worksheet1. (24-Jul)
Save( as)... gives "can't access filename" dialog and
won't save anything. (FileMgr?) (23-Jul-91)
Edit:
Formula:
Format:
Data:
Options/Display...
Macro:
Window: (full menus)
Show Info...: Dies when you try to close the info window with
the close box. HiliteWindow is passed (GrafPtr)0x306. (23-Jul-91)
-- Bugs --
stef: 20-Jun-91:
Help window has lines across bottom and right. They use a hack
to wdef0 to remove the lines. (WindowMgr) (23-Jul-91)
ShowClipboard segv's when no active document. a0 may be wrong,
Still faults with ROMlib_memnomove set. Saves memory 0x0 to
about 0x60 (23-Jul-91)
stef: 21-Jun-91:
Seg faults in OffsetRgn when closing "Expenses". Type: File/Open,
double click "Expenses", click close box. regionhandle is
bad. Dies whether ROMlib_memnomove is set or not. (see note
in globals section about 0x3e2. (23-Jul-91))
stef: 24-Jun-91:
File/New... (type), and then close whatever you opened with close box:
Worksheet:
segv in OffsetRgn, rh is bad (-1)
Chart:
segv in HiliteWindow, window arg is bad.
Macro:
segv in OffsetRgn, rh==-1, same debugtable as WorkSheet, above.
I was able to get one of the samples, Scientific/Survey to mess
up the screen just by scrolling up and down. Do a File/Open...
and it will eventually die.
stef: 18-Jul-91:
Zooming larger doesn't update the original part of the window. (23-Jul)
Microsoft Works v 2.00d:
--- globals ---
0x006 ??? byte
0x06C AutoInt3 long, interrupt auto vector (mpw)
0x108 MemTop word, (mpw says pointer)
0x15c SEvtEnb
WORD PROCESSOR
-------- MENUS (WP)--------
About:
File:
Open: can't open with ROMlib_memnomove set. (stef 2-Jul-91)
Save: doesn't write out file fully. Rsrc side does not contain
the owner info, so Works doesn't identify it as one of its
own files. Rsrc fork contained only "ARDI" and nulls.
(HFS?) (stef 2-Jul-91)
Edit:
Window:
Show Clipboard: not enough memory dialog. I could show the
clipboard when there was something in the clipboard. (2-Jul-91)
Macro:
Spell:
Loops while in file manager. Should work once HFS works.
(stef 2-Jul-91)
Chart:
Text overlaps numbers. This is because it calculates
the width in one font, but draws in another. (bill 7/26/91)
Sort:
-- Bugs (wp) --
Cursor remains watch on startup. (stef 24-Jul-91)
Claims it runs out of memory trying to save undo information
while typing/backspacing/typing more. (stef 24-Jul-91)
It doesn't do this when running with -clock. (bill 19-Aug-91)
Claims it runs out of memory when ROMlib_memnomove set. Won't
open any new wp files. (stef 2-Jul-91)
In startup window, it does not show all files of the appropriate
types. (HFS? FileMgr?) (stef 24-Jul-91)
Text cursor not visible after typing. It disappears when the
mouse cursor disappears and is visible when the mouse is
visible. (TextEdit) (stef 24-Jul-91)
It doesn't do this when running with -clock. (bill 19-Aug-91)
setting ROMlib_memnomove causes works to claim it has no memory
for opening documents. (stef 3-Jul-91)
ctlInit.c:43 Assert failed when closing.
This assert is to make sure that the procptr does not try to
point to anything outside of 16M. This means that Works is
playing with the structures or is clobbering memory somehow.
(ControlMgr?)
After more inspection: NewControl is called which calls NewHandle
to allocate retval. NewHandle returns (Handle) 0x601164fa, which
is wrong. This happens after the close box is clicked on a new
document. 0x1164fa seems to be a valid handle.
R_DisposHandle was called earlier with the illegal handle; the
backtrace looks like:
#0 R_DisposHandle () (mman.c line 712)
#1 0x4208 in os2 ()
#2 0x16701c in end ()
#3 0x12b55e in end ()
(gdb) p h
$44 = (Handle) 0x801164f2
(gdb) i b
Breakpoints:
Num Enb Address Where
#6 y 0x0004f6f4 in R_DisposHandle (mman.c line 712)
break only if h > 2097152
Maybe DisposHandle should strip off the high byte. (stef 24-Jul-91)
DATABASE:
-------- MENUS (DB)--------
File/Save:
Doesn't save files correctly. Resource fork is empty except
for "ARDI" and a bunch of nulls. (stef 24-Jul-91)
Format/Show List:
Splitting screen grabs mouse and won't let go until another
click. It does other strange stuff you have to see.
Undoubtedly uses its own Control proc. (stef 24-Jul-91)
Report/Select Report:
Does not highlight the report name in the dlog, even when
moused. (TextEdit) (stef 2-Jul-91)
[NeXT note: Works WILL NOT WORK with our current set of kernel
mods/memory layout. Works is real obnoxious; it deliberately hits
a location that is high enough to not be in our address space. I
think we can get around this but there are enough other problems
that it is low priority, especially since we no longer have a
copy of Works].
Aldus PageMaker 4.0 ser#02-40A3-200122411:
--- globals ---
0x11C UTableBase long
0x15A ??? word
0x1D2 UnitNtryCnt word
0x82C ??? long
0xB7C ??? long
-- Menus --
About:
Help/(topic):
Help: Doesn't draw pictures or icons. (bill 8-Aug-91)
Alternating between topics menu and topics
eventually makes the topics menu blank. (bill 8-Aug-91)
File:
Export: Placed a degree symbol(?) in TextEdit field. To
repeat: File/New, CR, Window/Toolbox, Click on upper right
of toolbox to get text cursor. Type anything in the document,
then mouse File/Export. (stef)
Edit:
Options:
Page:
Type:
Define Styles:
New:
Para...:
Tabs: Fractional positions are out of bounds, yet
integral positions work okay. (Packn? IUxxx?)
(stef)
Element:
Define Colors...: Does not update dlog when Edit returns.
If it uses the List Manager, it needs to activate the
list (ListMgr).
Edit Color...:
scrollbars screw up: click and hold the mouse between
the thumb and the scroll arrow, very close to the arrow.
The thumb will move rapidly toward the mouse, but when
it moves the very last distance, the mouse grabs the thumb.
(stef) (ControlMgr?)
Windows:
-- Bugs --
Popups do not update to the current selection. (PopupMenuSelect?)
(stef 24-Jul-91)
stef 27-Jun-91:
Page icons in lower left are getting drawn through by the wdef0.
They should be in the foreground. Switching between 1 and 2
page mode does not update the entire screen correctly.
Styles and Colors windows are funky. Selecting or scrolling causes
effects in the main window. (doesn't happen with no moving
handles) The windows should be just large enough to hold
scroll bars and a grow icon (they are too small). The windows
have lines across the bottom from the grow icon. (stef 24-Jul-91)
Text cursor placed wrong. The spacing is incorrect. (24-Jul-91)
Text does not space correctly (too close) even when tracking
is off. I tested it with 72 pt text. (TextEdit?) (24-Jul-91)
Hangs periodically in dialogs. (handles can move) (2-Jul-91)
FileMaker Pro 1.0v1, Oct, 1990:
-- Globals --
0x4 d#551 reads a4@(4) where a4 is 0
0x5 a4 comes from a5@(-24918)
0x291 PortBUse
0xBAC TESysJust word, (MPW)
movel @#0x32c: MPW has that location as GZRootPtr. (tim? 5-10-91)
-- Menus --
Logo:
File:
Edit:
Select:
"Layout Box" accesses 0xBAC. (tim? 5-10-91)
Layout:
Arrange:
Format:
Scripts:
Window:
-- Bugs --
The record numbers get over-written. The little spiral on the
side does not get draw. It is a PIC (300), and DrawPicture()
is called after ShowWindow(). The opcodes are:
0x00
0x00
0x09
0x0E, then it quits.
ROMlib_hook numbers:
menu_mdef
script_notsupported
te_notsupported
stdfile_dialoghook
time_number
q_bitsproc
dial_user (tim 5-10-91)
clover-Q didn't work when I tried to exit. (stef 22-Jul-91)
About/Credits is supposed to scroll the development team and
some other names but doesn't, even with -clock. If you
mouse in the window, it'll scroll slowly. (stef 22-Jul-91)
MacWriteII rel 1.1v1, 1989
-- Globals --
0x03E ??? word, d#2735
0x98A ??? word, d#2005
0xA62 ??? word
0xAF6 ??? long
0xBA5 ???
0xBAC TESysJust long?
-- General Info --
-- Menus --
Desk:
File:
Printer Setup...: We do not have the printer setup dialog.
(tim 14-Apr-91)
Edit:
Find/Change: Highlighting of the find word gets munged.
It highlights the word, and the rest of the box and
vise-versa. (tim 14-Apr-91)
Font:
Size:
Style:
Custom...:
Size/other creates a TEbox that doesn't go away.
Format:
Spelling:
View:
Show Invisibles: With a few lines of text, there are weird
chars in the lines. The arrows in front of the lines of text
should not be there. (tim 14-Apr-91)
View/Actual
when done right after a View/Reduced, the screen messes up a bit.
(stef 24-Jul-91)
This is because the small text is drawn in the wrong place. I
suspect it has to do with the original document size being far
too large which in turn causes the FixMuls and MapRects to be
invalid. (bill 19-Aug-91)
-- Bugs --
Ruler is wrong size. This comes from PrintDefault().
The values there are not those of the Mac+. This also
makes the page guides the wrong size indentation. (tim? 14-Apr-91)
The document comes up in the middle (look at the scroll bars.)
It should come up in the upper left corner. Also, they move
when you bring up the "Format:Page..." dialog. Should they?
This may be part of an update problem. (tim? 14-Apr-91)
Intuit Quicken 1.5, 1989:
Logo:
File:
Page Setup: SEGV in GetNewDialog(), id == -8192.
GetNewDialog was called from PrStlDialog(). Should
-8192 be in our system? (tim 5-22-91)
Edit:
Activities:
Categories:
Recurring:
Watch Cursor during initial selection of account. (stef 18-Jul-91)
Sometimes does not register mouse-ups in numeric fields. (stef
18-Jul-91)
QuarkXPress 3.0, 1990:
-- Globals --
0x004 ??? long, $a1 near 0x11551e
0x008 ??? long, $a0 near location 0x10f652
0x00c ??? uses these.
0x82c RawMouse long, RawMouse (MPW SysEqu.a)
0x834 CrsrPin 8 bytes (MPW SysEqu.a)
0x83C CrsrRect 8 bytes (") only uses 0x83C and 0x83D
0xA46 CurDragAction long, implicit actionProc for drag control (")
ctm: 4-19-91
validbytes+0x8 to 0xF: d# 4556. They push (pea) fp(-20),
3, MBarHeight(or +12)+3, fp(-14)-3, and fp(-16)-3 on
to the stack.
0x115a1a <end+561114>: 0124247 (SetRect)
0x115a1c <end+561116>: moveal fp@(10),a0
0x115a20 <end+561120>: moveal a0@(130),a0
0x115a24 <end+561124>: moveal a0@,a0
0x115a26 <end+561126>: addql #8,a0
0x115a28 <end+561128>: lea fp@(-20),a1
0x115a2c <end+561132>: movel a1@+,a0@+
0x115a2e <end+561134>: movel a1@+,a0@+
-- General --
Needs -clock to handle its own MDEFs for popup windows. Otherwise
popups hang waiting for 0x16a when trying to scroll. (4-Jun-91)
Edit:
Show Clipboard:
Although it kinda makes sense, when the clipboard is
shown, if the X cut buffer changes and then part of the
clipboard is exposed, it updates the exposed area with
the new X cut buffer. In other words, if you cut ABC,
then cover up the C part of the clipboard window, then
put the cursor in an xterm and highlight DEF, then
expose the clipboard, it'll look something like ABF.
The text in the clipboard appears to be too high, although
I haven't compared it to the Mac. ctm 7-26-91
---- Menus ---
About:
Double clicks on topics do not work consistently. Several clicks
sometimes cause a double click to get through. (stef 26-Jul-91)
File:
Save as EPS:
calls PrGeneral().
Page Setup:
calls PrGeneral().
Edit:
Find/Change:
Clicking Zoombox doesn't alternate sizes. (bill 29-Jul-91)
Doesn't use ZoomWindow. (stef 26-Jul-91)
Edit:
Style Sheets...:
EDIT:
NEW/Edit:
Sporadic SEGV in xInsertResMenu, menu.c:349
348 while (sp != ep)
349 *dp++ = *sp++;
sometimes sp > ep and this loop gives a segv
Hsize is negative when this happens. Haven't checked
through the menu items to see if they make sense.
(haven't seen this lately--stef, 22-Aug-91)
Edit
Colors:
H&J:
Duplicate appeared to work.
New appeared to work.
When saved, it screwed up resource fork that causes segv's on
startup when getting resources FHDL. To recreate, run binhex
on Q.Bin. (stef, waybackwhen)
Style:
Font >:
Size >: changing selected text to large size did not draw entirely.
It draws to a bitmap which is too small. It looks like
the bitmap size is based upon the unscaled font size.
(bill 7/29/91)
Type Style >:
Shade >:
Alignment >: occasionally hangs on this menu item. See below.
Item:
Modify:
Utilities:
Font Usage:
SEGV's in romlib_coalesce after calling FrameRect after
calling HiliteWindow when a document is created with no
automatic text box. To get it to repeat, type:
Command-N, uncheck "Auto-Text-Box" checkbox, mouse OKAY,
mouse the menu: Utilities/Font Usage (stef 22-Jul-91)
(stef, 21-Aug-91: hung on me, no segv)
-- Bugs --
Bootup window uses wrong font for registered name. Looks like
the system font scaled small. (stef 20-Jul-91)
Spell checking sorta works, but you must click on the
spell check window before it'll ask for choices. It does
not put the spell check window in front.
(WindowMgr?) (stef 21-Aug-91)
Fonts in Measurements window vary and are usually wrong.
Font & size get set to 0 (system font) in some call that
should probably be leaving or restoring them. In the TextEdit
fields, the Font & size get set to 0 somewhere (bad), but
TextEdit resets it to 3 (good). (26-Jul-91)
(*theDialogPtr->textH)->txSize == 9, but the text is drawn with
thePort->txSize. (bill 19-Aug-91)
Fonts in the TE fields on the NeXT do not get reset after
changing, but remain in the system font. (stef, 28-Aug-91)
There is a size indicator of a document in the lower
left. If the box is moused when in "thumbnails"
viewing mode, the cursor oscillates between text cursor
and arrow cursor when the mouse is in the box.
(TextEdit? I haven't checked what's being called that's
resetting the cursor) (stef, 29-May-91)
In the fourth box of the measurements window, there are two
sets of arrows (up/down & left/right). These are for leading
and kerning/tracking (space between text). If no text is
selected, the left/right arrows are not present, but if
you mouse where they should be, the program seg faults in
ROMlib_dpnotoip (dp=(DialogPeek) 0x113092, itemno=-6984)
(dialManip.c line 43). (ControlMgr/DialogMgr?)
0xA96C 159295 FindControl
0xA870 159296 LocalToGlobal
0xA980 159297 DialogSelect
0xA98D 159298 GetDItem
The right and left arrows in the measurement window don't
work anyway, although setting the TE field does change kerning.
(stef, 30-May-91)
Pop-up in STYLE/Alignment pulldown sometimes hangs when
mouse moves out of it. (stef, 7-Jun-91)
Calls GetIcon which calls GetResource to load
ICONs. It walks through resource maps continually.
GetRes is called with some non-existent icon IDs.
(stef 18-Jun) (ResourceMgr?)
Double clicking size (100%) in lower left of document should
highlight field. (IMI, TextEdit) (stef, 7-Jun-91)
Claris MacDraw II 1.1, 1989:
-- Globals --
0xAF6 TEWdBreak long, default word break routine (mpw)
0xBA5 WordRedraw byte, mpw
0xBAC TESysJust word, mpw
0xBAE ??? word, (part of TESysJust?)
tim,5-4-91:
Also, after a resize the window scrolls
off of the top, into the menu. As well as on the side
of the 1/2 of the tools.
Traps they get the address of:
22 0x00000090
23 0x0000009f
25 0x0000a860 WaitNextEvent
26 0x0000a89f Unimplemented
132 0x00000090
133 0x0000009f
135 0x00000060
136 0x0000009f
301 0x00000090
302 0x0000009f
304 0x0000a860 WaitNextEvent
305 0x0000a89f Unimplemented
307 0x0000a89f Unimplemented
308 0x0000a055 StripAdress
1124 0x00000090
1125 0x0000009f
General:
Text is not drawn as you type. It gets justified to the right
of the page. If you continue to type it will appear.(bill 8-21-91)
Put some text in a box (last tool):
"this is some text in the last box.<ret><ret>help.s". Went back
to delete the 's' and had to kill executor. Only waited a couple
of minutes though. With the Main Dictionary installed, and when
MacDrawII is checking spelling; it gets an abort in ScriptUtil().
The selector is 16, and 26.
Scrolling is hosed. It loses parts of the document (even after
a window resize), also scrolling down then back up scrolls
into the menu bar. They have a custom ActionProc, called from
TrackControl(). That ActionProc eventually calls ScrollRect
(the previous trap is ClipRect). The clipping of the
dstr seems to be off. The SetPort call just before the
call to ScrollRect() sets the port to be different then
the port set in TrackControl(), not the control owner.
Desk:
File:
Edit:
Undo seems give spurious results. Once it ended up at the
end of gdb addressable memory, second it was in an infinte loop.
0xA8A3 1417316 EraseRect
0xA893 1417317 MoveTo
0xA885 1417323 DrawText
0xA887 1482874 TextFont
0xA888 1482875 TextFace
0xA88A 1482876 TextSize
0xA862 1482877 ForeColor
0xA835 1482878 FontMetrics
0xA868 1493903 FixMul
Layout:
Arrange:
Alignment...: The dialog left some junk on the document.
I clicked in the Align (top to bottom) check box.
Also "Align" does not seem to do anything. May need to read the
manual. Also, look at the notes under "Size:Fonts...".
Pen:
Font:
Size:
Style:
Aldus FreeHand 3.0, 1991:
-- Globals --
0x4 ??? word
0x6C ??? long
0x11C UTableBase long
0x15A SysVersion word, cmpiw #1536,@#0x15a (0x600).
0x1D2 UnitNtryCnt word, 0x1cb35e: movel a4@(10),sp@-, $a4==0x1c0
0x1D4 VIA word?
0xB7C ??? long
-- General --
(stef, 8-Jul-91)
File/New dialog gives pulldown for size. On mac II, the order is
A3,A4,A4Small,A5,B4,B5,Legal,Letter,LetterSmall,Tabloid. On
executor, order is LetSml,Let,A4S,A4,B5,Leg,A3,A5,B4,Tabloid.
-- Menus --
File:
Preferences...: calls SetDItem with itemno == -1. Doesn't
appear to get that value from low mem globals.
Causes segv in "while (--itemno)" Could be modified
to be "while (--itemno > 0)" but it may pass -1 because
of a problem somewhere else. (stef 7-Jul-91)
Edit:
View:
Styles:
(in styles window): New/"Fill and line..." gave segv,
actually tried to set code in R_DisposHandle+236,
accessed 0x1d0. 0x1cb35e movel a4@(10),a0@, $a4==0x1c0,
$a0==0xeff4632, x/x 0xeff4632 == 0x4f6e0
Element:
Type:
Attributes:
Fill & Line...: Died with a bad address, in their MDEF called
from AppendMenu(), CalcMenuSize(). Memory is not moving.
0xA933 7335 AppendMenu
0xA950 7336 CountMItems
0xA886 7346 TextWidth
0xA946 7347 GetItem
0xA02E 7348 R_BlockMove
Color Window:
Menu goes off the edge of the screen.
New: Seg faults.
-- Bugs --
tim? (date?)
Nil Window (?) dereference after a GetNextEvent(), FindWindow().
I clicked in the menu bar.
Nil dereference after closing the only document window:
0xA96D 493075 Draw1Control
0xA9E7 493078 Pack0
0xA874 493079 GetPort
0xA873 493080 SetPort
Select the text tool, went to type on the document and it
appeard to get into an infinite loop:
0xA9D0 21236 TECalText
0xA83C 21238 TEGetOffset
0xA83D 323675 TEDispatch
When you select any tool, except the text tool, freehand appears
to do a list update; then it selects the text tool. This only
seems to happen if there are events which LClick looks at. Also,
there has to be a New... document. It does not matter if handles
are moving or not.
Command-space should magnify the area around a mouse click,
but it doesn't.
Clicking on Info bar on top causes garbage in bar. It happens
most often when the left edge is at or left of the left side
of the screen (did that make sense?). (ScrollRect?) stef, 8-Jul-91
Scrolling around the screen causes some major memory headaches.
stef: 8-Jul-91
Selecting text tool hangs in TEGetHeight. start line is 0, end
line is -1 and it cycles. The asm code between cycles is
relatively short, but I didn't dig through to see what it
was looking for. (stef, 22-Aug-91)
Microsoft PowerPoint v2.01D, 1990:
bill, 4-17-91:
It has its own MDEFs and CDEFs. It also has its own q_txmeasproc
which may give some clues to why the text has size problems (It
draws the text the right size, but in far too small a box so most
of it can not be seen). Also its own q_textproc (...yes I'm typing
this in as I go. Why do you ask?) Also q_bitsproc. Also q_rectproc.
Also q_lineproc. Also dial_modal. This list may not be complete.
tim, 4-16-91:
General:
0xB9E: movew -256, 0xb9e
-The drawing area does not appear to be kept up correctly. PP loses
some of the items trying to draw them.
-When the untitled window first comes up, there is one item on it
(the title). Typing in text it is clipped incorrectly. Sometimes
the tops are cut off, sometimes it is the bottom. The box that
surrounds the text is not the size of the text. Nor is it in the
proper place.
-Nil handle dereference trying to quit.
-Resizing the "Untitled" window loses the tools on the side of that
window. thePort->portRect.bounds seem to have changed since the
controls were created. It draws the special slider once, then again.
The second time the drawing is done in a weird place, since the
bounds are weird.
-Try to move the slider (? the thing below the tools):
movel @#0xa46, a0. It wants a routine there. The next instr
is a jsr @a0. According to MPW, CurDragAction $A46.
Read in "columbus" to get a thing on the slider. I put in
4 slides. I could click on the bar to get the slider to move,
but could not drag the slider.
Logo:
Help: Slide sorter, SEGVs in nextop(), called by DrawPicture(),
called by end().
File:
Open: validbytes+b9e/w 101.
Save: GetVolParams() is not supported.
Slide Show: default, SEGVs in InitProcMenu(300),
GetResource('MDBF', 300 & 0xFFF8) returned a nil handle.
If you set id = 300 in GetResource (there is only one) when
the id == 294 it starts up the slide show.
The slide show does not keep going, it only shows the first slide.
Again I am using the file "Columbus" to do the slide show.
There is a 'tstw $d0' just after the trap call. If you set
$d0 = 0 then continue, the next slide comes up. It may not be
that simple.
Edit:
View:
Notes (#1): Clipping problem selecting this in the untitled window.
Slide sorter: Breaks with the file columbus. In DrawPicture(),
nextop(), *pp is something weird. It does not appear to be
a moving handle problem. I broke in LoadSeg() and OSEventCommon()
and the behavior appeared to be the same, although what
'pp' pointed to was different.
0xA025 8214 R_GetHandleSize
0xA122 8215 R_NewHandle
0xA023 8216 R_DisposHandle
0xA874 8217 GetPort
0xA8EA 8218 SetStdProcs
0xA8F6 8219 DrawPicture
Style:
Making outlined, shadowed, underlined, italisized, and bold
word; then select the word. The selection box cuts off before
the text ends. Not all of the text is selected. The point
sizes were 32 and 96.
Define styles: movew -256 (0xff00), @a3, a3 == 0xb9e
Text:
Spelling: text clipping problems. Did not update the window
correctly (?) after popped up the "end of document" dialog.
Draw:
Show Guides: After you move a guide line the cursor disappears.
Color:
Window:
Hypercard1.2.2:
Looks at 0x174 - 0x180 (KeyMap and KeypadMap)
Needs -clock -refresh (bill 9/12/91)
Writes directly to screen
Hasn't been tested much (is probably very buggy)
ThinkC: tlc, 3-14-91
adb validbytes+b9e/w 101
Cannot create a project, close it and reopen it, -39 is
the error reported (eofErr ?).
Dies in PrStlInit (0x4014 == $pc ??). PrStlInit is in
stubs.s as what looks like an unimplmented function.
For a "File:New" (after a new project has been opened),
dies in CalcMenu().
Changing the "Windows"Full Titles" options dies int
ROMlib_menuhelper(), line 784. The (*mh)->menuProc is
hosed.
tlc, 3-18-91:
The menuProc gets hosed in a call to DisposeMenu().
The sequence is: menuProc = 0; DisposHandle(menuProc);.
.... menuProc = TheZone->hFstFree, in DisposHandle().
When I jumped around the call to DisposHandle, and the
assignment (menuProc = 0), it kept running. I can now
open and edit source code. The cursor is always at the
beginning (of the 3 line document), and it blinks a lot.
Hangs when one tries to read in a project. It is in an
infinite loop. When one does anything to change the
"Window" menu, such as adding a window, or clicking on
the "Full Titles" menu option; ThinkC blows up. It
appears to be from a handle not getting copies correctly.
The (**(*mh)->menuProc)() had apparently bad code.
"File:Page Setup" blows up in PrStlInit() (??).
"File:New" blows up trying to add to "Windows" menu.
However, an "Untitled" window does come up on the screen.
If you create and close a project then try to read it in,
ThinkC gets lost.
tlc, 3-22-91:
"About ThinkC" hangs. It looks like it is calling
GetOSEvent(), and Random() over and over.
New projects are written to "filesystem.internal" and
to the directory specified in the file picker.
"File:New" brings up a "Untitled" window. The cursor
in the window constantly blinks on the far left of the window.
With:
main()
{
}
in the new window, one cannot "Select All". The last brace
is left out of the selection.
Open -> save -> open does not read in the saved text.
Playing with the font selector, abort() in ROMlib_makespace(),
when I went from 9 pt text to 43 pt text, then clicked ont
the text size button.
With the above program in the window, I can make the left-
right thumb go over the left arrow. The thumb seems
to wrap around when srcolling the window right.
"Search" and "Find" seem to work, but doi not hilite the
text they find. After a successfull search, hit a key
and text gets replaced. I did not try an undo.
FontDAMover: Reads 0x07e8, runs if nocheckvalid set.
Saves 0xad8-0xbd4 (longs, so it actually saves to 0xbd7)
Standard GetFile box cuts off top.
OPEN will work the first time, but not successive times after
a CLOSE. It gives an Alert claiming the file is damaged or
in use.
It is possible to open the System file even if it's still
opened on the left. (The Mac doesn't allow it, claiming
the file is already open.)
It correctly (as far as I can tell) will remove Geneva
with Hebrew 24 from the system file when either QUIT or
CLOSE then QUIT are clicked immediately afterward.
Hit NEW, resulting dialog box too small.
DID create a new font file, but it's
dated Jan 15, 1921. Created .Rsrc file
dated normally. Std GetFile doesn't find it.
Tried again, this time went up to filesystem.internal.
"testfont2" was created, but didn't get opened
automatically (as on the mac). It gets a file
damaged or in use error when explicitly opened.
Option button does not search for all types.
atonce: Assert failed: SetResAttrs, line 74:
assert((attrs & DONTTOUCHMASK) == 0). After that, the
handle returned by GetResource(CODE, 0) == 0x8. (just like
vision lab after it was un-stuffit'ed.)
In the .Rsrc directory:
cmp old.ao atOnce!
old.ao atOnce! differ: char 910466, line 5594
cmp -l says the differ starting at 911619 and ending
at 911861. There are gaps in the differences, but most
of the bytes inbetween have been changed.
traps:
0xA975 9897 TickCount
0xA994 9903 CurResFile
0xA998 9904 UseResFile
0xA917 9905 GetWRefCon
0xA873 9906 SetPort
0xA81F 9907 Get1Resource
0xA122 9908 R_NewHandle
0xA870 9909 LocalToGlobal
0xA9AB 9910 AddResource
0xA9A6 9911 GetResAttrs
0xA9A7 9912 SetResAttrs
It looks like the resource type it is trying to get is $71 = {"kCnF"}.
atOnceinstaller: Needs validbytes for R_BlockMove(0x910, stack, 64).
cmp -l atOnce from the MacII and from our unstuffit:
995 37777777600 0
1070 0 101
.
.
.
1126 37777777645 52
1127 37777777651 37777777600
DEMO APPLICATIONS
MYSTERY BusWeek: limps.
Requires file names to be lower case, then gets an illegal
instruction. (probably due to the fact that our VREFNUM
aren't n*94+2
tlc/syc, 3-6-91: Accesses 0x34e, 0x578, 0x601, 0x602.
"First Time" button works, cuts off some text
at bottom, text seems to be slightly too big.
Passes Nil GrafPtr on call to OpenPort when
"Open Article" clicked, causes seg fault later on
a FillRect.
0xA002 35197 _PBRead
0xA044 35198 _PBSetFPos
0xA02E 35215 R_BlockMove
0xA01F 35216 R_DisposPtr
0xA86F 35217 OpenPort
iclone%
Clicking QUIT gives a screen where all the text is too
large.
In order to quit:
adb validbytes+34e/W 1010101
Must run with -clock -refresh.
DoubleHelixEngn: Limps.
Some sort of problem with non-existent MDEF (may require
more files); should be looked into.
-tlc, 3-14-91
adb validbytes+322/W 1010101
adb validbytes+70/W up to +80, 0x10. Dies in a bcopy, from
a memory manager call.
adb validbytes+291/w 100 portBUse.
Dies in GetMenu(), rid == 10. GetResource('MENU', rid)
returns Nil.
Also the Menu bar is hosed. It does something weird as it
is starting up.
tlc, 3-22-90:
CountMItems returns 0xcf8d items. set it to 4 and it
continued. Dies in doing file stuff.
macdraw from Sampler disk included w/ Mac+: text isn't clipped
macpaint from Sampler disk included w/ Mac+: writes directly to screen and
hasnt' been tested much
tim, 4-1-91:
Are lists used for the fill, pen, and lines menus? They are messed
up, off by 2.5 cell entries (if they are lists.)
Why can't I get rid of the grid.
It is really slow.
macproject: doesn't write dates to screen
FontographerDemo: should be in green.
GrapherDemo: (doesn't redraw graphs always)
4Demo2.0: Uses ScriptUtil. Limps;
Multi-AdCreatorDemo: Needs validbytes 0-7 Limps.
MultiFlow: limps
ParadigmDemo:
Italic text has beaucoup problems. 9 pt italic does not
print at all. Larger fonts partially overwrite the previous
letter typed. Font size changes from 14 to 18 do not show
any change on the screen. The OKAY button on "Find Point"
looks strange. "Page Setup" seg faults (because of
dialCreate.c line 126 which calls LoadResource w/o checking
if GetResource returned NIL). (stef14-Mar-91):
Lines/(None) puts a rectangle shadow next to the menu (stef, 27-Aug-91)
ResorcererDemo 1.0: tlc, 3-18-91:
validbytes+17b/W 1010101
adb validbytes+17[ab]/W 1010101
BitTst was called on 0x17[ab], that is the reason
for the 1010101, a long.
stef: 30-May-91
needs validbytes+0xb0 1010101
+0xca 101
SonarDemo: Places a button in the wrong place. Margins don't
seem to be set quite right. They try to go 4 off of
a nil pointer.
GAMES (FULL and DEMO)
blackjack2.0: (Should be in Green)
lazlife2.0c: writes directly to screen
Picks up mystery value from 0xA7C (in ApplScratch)
and stores funky value at 0x18 off it. I think
other apps do this before they leave as well.
tim, 4-22-91: Died when the screen was very big and grabbed
an area to flip. Realloc abort().
lunarlander: Limps. Still pretty buggy.
Pleides: appears to have problems w/funky control
validbytes+a4a /w 101
validbytes+a5e /w 100
validbytes+908/W 1010101
validbytes+3f6/w 101
validbytes+220/w 101
supermandelzoom1.0: Doesn't see mouse stuff automatically.
Synchronicity: No sound (should be in Green)
Telewar: Needs testing.
DungeonofDoom4.0: requires -clock -refresh
[NeXTNote: uses 24 bit addressing so dies immediately on
the NeXT]
#####################################################################
Red_Notes: These are all programs that die "mysteriously" before they
start dispatching events.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
wizardsfire: Wants to ExitToShell, although does
movl 0xA7C, A0
movw sp@(4), a0@(0x18)
trick just like lazlife
StellaDemo: Exits normally without doing anything.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
MYSTERY macwrite sampler: requires -nbitsinaddr 24
deb#232 GetResource('CODE', 2)
checks out where the stack is and decides there must
be room between the data segment and the stack (foo)
233 BlockMove
tlc, 3-26-91: b in ValidRect(). That is the trap before
macwrite does its memory scan. (It looks like it is going through
the heap a block at a time.) Set 0x31a == 0x00ffffff, Lo3Bytes.
Continued. GetResource('PAT ', 17) fails. That pattern is in the
system folder of the MacII. GetResource( 'NFNT', 396) fails. Do
not know why.
SEGVs in GetDItem() as 'dp' == Nil. If you make GetDItem()
return if 'dp' == 0, it calls trap 0xAA85, which is an unknown trap.
That trap number is from 'p printdebugtable().'
Buick: tlc, 3-14-91
adb validbytes+b9e/w 101
validbytes+8f2/w 101
GetResource('CDEF', 512 ); returns a Nil.
Expects patching "GetResource" to trap calls to GetPicture
so that they can translate 'PI<pi=3.1415926535897932384626>T'
into PICT (appears to be huffman encoded). Will require
internal use of traps. Should be in Black until we decide
to support internal use of traps.
DiskRanger: Doesn't find any files when cataloging.
ctm 4-21-91: Should be in Yellow, even though it's useless
as it stands.
DrwTable: Memory problems when calling R_Unlock (deb#405)
Peculiar code:
link fp,#-8
...
tstl fp@(-4) /* check for non-zero retpc? */
beq 1f
movel fp@(-4),sp@- /* push the retpc on stack? */
jsr /* glue to do an HUnlock */
1: unlk fp
rts
I just checked: This spooey code gets executed on the
Mac and the Mac has the good sense to blow off the call
to do the HUnlock. We could get by it if we were
to do a sanity check (address has to point into stack
or to memory below brk) before converting the Handle
to a block (which is necessary to detect nilHandle
and WZErrors)
stef 21-Mar-91:
coerced (tricked, faked, forced, patched) it to run with
a break in R_HUnlock only if h > 0xffffff && debugnumber > 300
and with a command of silent,return,continue.
This patch makes it run SLOW, but it actually ran, as far as
I could tell. Someone must be working on text right
now...gdb kept printing out "debugstr: TELing" when I tried
to type text.
It appears that the scrollbars do not work properly. The
scrollbar "window" showing where the screen is in relation to
the whole does not seem to move properly. This is largely
cosmetic. It can probably go in Yellow as soon as the R_HUnlock
thing is fixed. Needs validbytes+0x02=100, 0x2c6=1010101
FullWrite demo: ctm 4-21-91: w/nocheckvalid set dies in PBOpen d#5890
pb->ioParam looks pretty messed.
FullWrite: Blows up early on. Probably decompression stuff related
to traps (should check by watching which traps are patched)
BDSDemo: ctm 4-21-91: d#597 SetMCEntries. I don't remember it doing
this before. May need to futz w/ SysEnvirons to prevent this.
Leprachaun: Calls SndNewChannel
stef: attempts to load a MENU resource more than once and
hoses itself.
tlc, 3-26-91: no. Calls trap 0xA807, SndNewChannel (?).
Nisus: Release resource pukes.
adb validbytes+0/W 1010101
tlc: ReleaseResource() calls ROMlib_findres() which calls
ROMlib_rntohandl(). The #define WALMAPTOP( map ) causes
a SEGV. The linked list of maps is hosed.
NoteWrit: About box not placed properly.
The menu bar is messed up. It greys out the line below
the menu bar as well as the MBAR entries not being used.
R_HLock blows up.
tlc: It comes from a trap call to SetPort(). Then,
after the call it does a
moveal a5@(16), a0
It then calls R_HLock. A5 + 16 is in the quick draw
globals.
tim, 5-9-91: seems to run with nocheckvalid set.
image processing: tim, 4-5-91: The 'ReadMe!!': SEGVs in ROMlib_makdespace(),
called from R_SethandleSize().
Traps:
0xA928 66 InvalRect
0xA958 67 HideControl
0xA959 68 MoveControl
0xA95C 69 SizeControl
0xA957 70 ShowControl
0xA92A 71 ValidRect
0xA8A7 73 SetRect
0xA060 74
0xA9F5 75 GetAppParms
0xA91A 76 SetWTitle
0xA000 77 _PBOpen
0xA011 78 _PBGetEOF
0xA024 79 R_SetHandleSize
0xA002 80 _PBRead
0xA001 81 _PBClose
0xA851 82 SetCursor
0xA029 83 R_HLock
0xA960 84 GetCtlValue
0xA8A9 85 InsetRect
0xA9D0 86 TECalText
visionlab.sit: Runs (?).
Vision Lab Demo: Can go to Yellow.
PlayMaker football: starts to come up, then hangs. May need -clock (which
is temporarily out of order)
###########################################################################
Black_Notes: These programs all die because they *insist* on having something
that we didn't support. We haven't gotten around to looking
at the two programs that we might be able to get to go now that
we have Stylized TextEdit support and Inside Macintosh Volume VI
(ActaAdvantageDemo requires Stylized TextEdit, Hypercard1.2.5
requires some new traps that we didn't have documentation for
at the time).
PrePrint 1.0: has to have color
Hypercard1.2.5: requires Sys 6.04. (Can't lie, it uses new traps)
ActaAdvantageDemo: Uses TEStyleNew.
tim, 4-1-91:
0xA969 1236 DrawControls
0xA960 1237 GetCtlValue
0xA878 1238 SetOrigin
0xA87B 1240 ClipRect
0xA8A3 1241 EraseRect
0xA023 1242 R_DisposHandle
0xA9E1 1243 HandToHand
0xA887 1249 TextFont
0xA888 1250 TextFace
0xA88A 1251 TextSize
0xA88B 1252 GetFontInfo
0xA83D 1253 TEDispatch
0xA03B 1254 _Delay
0xA029 1255 R_HLock
Bombs here.
On the way: Need have DisposeMenu() call
ReleaseResource( mh ), as opposed to DisposeHandle().
Also, calls TEDispatch with a selector of 13. (jbsr abort.)
I set it to 4 and made it continue. Nine is the highest value
in IM-V.
Brought up a widnow then died
(as noted above.)
adb valibytes+10/W 1010101 +14/W 1010101. 0x10+0t16/w 101
0x10+0t22/w 101 0x10+0t20 /w 101, just before a trap
SetRect().
It looks like ActaAdvantage is looking at 0x10 as GrafPtr and
WindowPeek. It uses it to pass to
DrawGrowIcon( w = (GrafPtr)0x10,...). A WidowRecord is 156 bytes
(0x9c) long. Could the locations from 0x10 to 0xAC be used for
some kind of window? (4-2-91, no, it is the vectors)
#11 n 0x00044480 in LoadSeg (segment.c line 309)
silent
set {long}0x2010 = 0
set {long}0x2014 = 0
set {long}0x2032 = 0
set {long}0x2028 = 0
dis 11
c
#12 n 0x00014806 in InitGraf (qGrafport.c line 31)
#13 y 0x00014ac6 in SetPort (qGrafport.c line 105)
silent
set {GrafPtr}0x2010 = p
c
To Get it there.
FreeHand demo: Jumps to 10 off ROMBase expecting it to do something
SreenDump: tim, 4-5-91: In the 'screendumpII' directory, the 'ReadMe!':
It comes up. At the bottom it has text selected which looks
like it is the end of the file. Comes up with an error, saying
it cannot initialize the printer.
screendump itself: "Edit" in the menu bar is disabled. The
line that separates the menu bar from the main window is also
greyed out. The about box border does not match up in the
upper-right corner. This could be just from the algorithm.
tim, 4-12-91: Uses 'FKEY's. We do not support them.