Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site gatech.UUCP Path: utzoo!watmath!clyde!akgua!gatech!strick From: strick@gatech.UUCP (Henry A. Strickland) Newsgroups: net.micro.6809 Subject: Re: ident query - (nf) Message-ID: <7713@gatech.UUCP> Date: Mon, 28-May-84 22:13:07 EDT Article-I.D.: gatech.7713 Posted: Mon May 28 22:13:07 1984 Date-Received: Fri, 1-Jun-84 02:48:14 EDT References: <3500038@uokvax.UUCP> Organization: The Clouds Project, School of ICS, Georgia Tech Lines: 56 () Concerning the languages that OS9 understands in the module headers ... The following language values are defined in my system definitions file: * * Language values * Object equ 1 6809 object Icode equ 2 Basic09 I-code Pcode equ 3 Pascal P-code Ccode equ 4 C I-code CblCode equ 5 Cobol I-code FrtnCode equ 6 Fortran I-code My edition of 'ident' knows about all six of these. ( My C compiler generates assembly language, which eventually ends up begin a module of language type object. ) It's interesting that 'ident' knows about so many languages, but not very useful unless the 'shell' does, too. The shell contains a table of language values and the names of the appropriate interpreters. Dump your shell, and somewhere around byte $350 to $390 you should see the object generated by code something like this: table fcb sbtrn+icode fcs /RunB/ fcb prgrm+pcode fcs /PascalS/ fcb sbrtn+cblcode -- cobol, not c fcs /RunC/ fcb 0 Older versions of the shell may not have the 'sbtrn+' and 'prgrm+' terms in the 'fcb' lines. When the shell is ready execute (F$fork) a module, if the language value is not 'object', it looks in this table to find the name of the interpreter. The shell then executes the interpreter, passing your command line to the interpreter as parameter. It's rather strange Microware gave my shell the ability to understand a cobol module, but not fortran or C module (if such a thing exists). If you don't like the choices of languages in your shell, you can attempt to change them. Somehow edit the module ( I often write short basic09 procedures to open a file, seek a place in it, put one byte, & close it to do quick things like this ) and change the table. If you don't plan to use pascal or cobol, you have plenty of room to tamper. You can make the table shorter (terminate it with the zero) but not longer. The table is referenced by a LEAX