bill@mwca.UUCP (Bill Sheppard) (04/09/91)
I'm in the process of attempting to recompile MicroEmacs 3.11 to make some changes (remove mouse support so I can use within a CLI, for one). The source code appears to expect Mark Williams C, but I'm using Sozobon (also have Alcyon). So far I've seen two compilation (haven't tried linking yet) errors: the structure DMABUFFER is expected in stat.h, the Sozobon stat.h doesn't reference it, and "aesbind.h" is expected, which also isn't in the Sozobon or dlibs distribution. Any ideas how these can be compensated for or where I might find AES bindings (are they in another .h file?) What other things should I watch for when porting from one variant of C to another, especially when I don't have documentation for the original target? -- ############################################################################## # Bill Sheppard -- bills@microware.com -- {uunet,sun}!mcrware!mwca!bill # # Microware Systems Corporation --- OS-9: Seven generations beyond OS/2!! # ######Opinions expressed are my own, though you'd be wise to adopt them!######
steve@thelake.mn.org (Steve Yelvington) (04/09/91)
[In article <1840@mwca.UUCP>, bill@mwca.UUCP (Bill Sheppard) writes ... ] > I'm in the process of attempting to recompile MicroEmacs 3.11 to make some > changes (remove mouse support so I can use within a CLI, for one). The > source code appears to expect Mark Williams C, but I'm using Sozobon (also > have Alcyon). So far I've seen two compilation (haven't tried linking yet) > errors: the structure DMABUFFER is expected in stat.h, the Sozobon stat.h > doesn't reference it, and "aesbind.h" is expected, which also isn't in the > Sozobon or dlibs distribution. Any ideas how these can be compensated for > or where I might find AES bindings (are they in another .h file?) The DMABUFFER is a 44-byte buffer used by Fsfirst() and Fsnext(). The MWC stat.h file includes a typedef for it; dLibs includes it directly in the definition of the stat struct. The MWC definition provides some access to internal GEMdos memory (the part dLibs identified as ``reserved field. DON'T TOUCH'' but you probably won't need any of that. The dLibs source code should have some examples of using its stat structure. I think the rule of thumb is to get the old DTA pointer and save it, declare a new DTA buffer, Fsetdta(), use it, then restore the old buffer with Fsetdta. The MWC aesbind.h file declares the values returned by AES functions -- all are ints, so you don't have to worry about that -- plus a couple of peculiar structure typedefs: Rect (four integers), Prect and Mouse (both four pointers to ints). The Mark Williams documentation uses those structures in a (probably vain) attempt to make GEM function calls more readable. > What other things should I watch for when porting from one variant of C to > another, especially when I don't have documentation for the original target? I can't think of any really bizarre things that you'll run into going from MWC to Sozobon. If you go in the opposite direction you'll need the dLibs source code handy, because Sozobon's library is far more complete than Mark Williams', especially in the string-handling functions. ---- Steve Yelvington / P. O. Box 38 / Marine on St. Croix, MN 55047 USA INTERNET: steve@thelake.mn.org UUCP: plains!umn-cs!thelake!steve GEnie: S.YELVINGTO2 Delphi: YELVINGTON
bjoern@drdhh.hanse.de (Bjoern Kriews) (04/12/91)
From article <1840@mwca.UUCP>, by bill@mwca.UUCP (Bill Sheppard): > errors: the structure DMABUFFER is expected in stat.h, the Sozobon stat.h > doesn't reference it, and "aesbind.h" is expected, which also isn't in the > Sozobon or dlibs distribution. Any ideas how these can be compensated for > or where I might find AES bindings (are they in another .h file?) DMABUFFER is MW's acronym for DTA (passed to GEMDOS Fsetdta()). Have no Sozobon at hand, try obdefs.h / gemdefs.h. So short, Bjoern --- bjoern@drdhh.hanse.de = Bjoern Kriews / Stormsweg 6 / 2000 Hamburg 76 / FRG "gaaga mahwe Bjoern urgl ufzae Turbo-C bnub" (J. Willamowius)
apratt@atari.UUCP (Allan Pratt) (04/13/91)
bill@mwca.UUCP (Bill Sheppard) writes: >I'm in the process of attempting to recompile MicroEmacs 3.11 to make some >changes (remove mouse support so I can use within a CLI, for one). I will be doing that for Dan (making it truly conditional on the compile-time symbol "MOUSE") before the true 3.11 release. I tell you so you know you're probably duplicating the effort. >source code appears to expect Mark Williams C, but I'm using Sozobon (also >have Alcyon). So far I've seen two compilation (haven't tried linking yet) >errors: the structure DMABUFFER is expected in stat.h, the Sozobon stat.h >doesn't reference it, and "aesbind.h" is expected, which also isn't in the >Sozobon or dlibs distribution. Any ideas how these can be compensated for >or where I might find AES bindings (are they in another .h file?) This Emacs for the ST is GREAT, but the portability stuff is TERRIBLE. If you're on an ST, the code only works for ST520 and ATARI and MWC. If you want to do something different, like a different compiler, you're in for trouble. Basically, you should leave MWC and ATARI and ST520 defined and then and remove code as necessary for your compiler. DMABUFFER is the MWC name for the DTA structure; it's only used in getffile and getnfile. Substitute the DTA struct from your compiler (check osbind.h or make your own) and fix the field names in the defines that have "info" in them. As for aesbind.h, it might be called gem.h or gembind.h. It has the AES structure and constant definitions, the companion to vdibind.h. ============================================ Opinions expressed above do not necessarily -- Allan Pratt, Atari Corp. reflect those of Atari Corp. or anyone else. ...ames!atari!apratt