ajb@MITRE.ARPA (Alan Broder) (03/10/86)
I'm reposting this due to Net problems reported to me by SRI. I'm trying this request for help one more time. My first request yielded no responses... I need to know several things about advanced programming in ACTION! : 1) Is it possible to "chain" ACTION! programs (load in and execute a new program at termination of first program). 2) Is it possible to invoke the ACTION! compiler from within a program. (lets say that I have a source file on disk and I wish to have a program invoke the compiler to compile the file from disk into memory). All you probably need is the entry point that the ACTION! monitor calls when you type the "C" command; as well as knowing where this routine expects to find the file name. 3) Is there some magical document that explains the above and other mysteries (e.g. symbol table format ...) Please (!!!!!!) reply with ANY information to me at the following address. Alan J. Broder ajb@mitre.arpa (703)883-5614 (office - voice)
langdon@lll-lcc.UUcp (Bruce Langdon) (03/21/86)
In article <8603101331.AA19883@mitre.ARPA>, ajb@MITRE.ARPA (Alan Broder) writes: > I need to know several things about advanced programming in ACTION! : > > 1) Is it possible to "chain" ACTION! programs (load in and > execute a new program at termination of first program). The following is from the OSS bulletin board, (408) 446-3451. It may require use of their DOS XL. I haven't tried it. ---------------------------------------------------------------------- Bruce Langdon L-472 langdon%lll-lcc@lll-crg.ARPA Physics Department "langdon#bruce%d"@lll-mfe.ARPA Lawrence Livermore National Laboratory Livermore, CA 94550 (415) 422-5444 UUCP: ..{gymble,ihnp4,seismo}!lll-crg!lll-lcc!langdon ---------------------------------------------------------------------- ; Chain - ACTION! program loader ; by Mark Rose - February, 1985 PROC LoadFile=*( BYTE x ) CARD goAddr = $2E2, startAddr = $6F0, endAddr = $6F2 BYTE rtn = $6F4 [ $0A $0A $0A $0A $AA $A9 $60 $8D rtn $A9 $80 $8D goAddr $A9 $06 $8D goAddr+1 $A9 $F0 $A0 4 $9D $344 $A9 $06 $9D $345 $98 $9D $348 $A9 0 $9D $349 $A9 7 $9D $342 $20 $E456 $10 3 $6C goAddr $AD startAddr $C9 $FF $D0 23 $4D startAddr+1 $D0 18 $AD endAddr $8D startAddr $AD endAddr+1 $8D startAddr+1 $A9 $F2 $A0 2 $D0 $C4 $AD endAddr $38 $ED startAddr $9D $348 $AD endAddr+1 $ED startAddr+1 $9D $349 $FE $348 $D0 3 $FE $349 $AD startAddr $9D $344 $AD startAddr+1 $9D $345 $A9 7 $9D $342 $20 $E456 $10 $8F $98 $4C Error ] PROC LoadEnd=*() PROC Chain( BYTE ARRAY fileName ) Close( 1 ) Open( 1, fileName, 4, 0 ) MoveBlock( $600, LoadFile, LoadEnd-LoadFile ) LoadFile( 1 ) RETURN ; From your ACTION! program, call the ; procedure Chain with the name of ; the ACTION! program to which you ; want to chain as the parameter. ; For example, ; Chain( "D:NEXTPROG.COM" ) ; would cause "NEXTPROG.COM" to be ; run as a binary file. The desired ; file MUST have been written to disk ; using the "W" command from the ; ACTION! monitor. MODULE
gammo@sask.UUCP (Louay Gammo) (04/12/86)
> I'm reposting this due to Net problems reported to me by SRI. > > I'm trying this request for help one more time. My first request yielded > no responses... > I need to know several things about advanced programming in ACTION! : > > 1) Is it possible to "chain" ACTION! programs (load in and > execute a new program at termination of first program). > > 2) Is it possible to invoke the ACTION! compiler from within > a program. (lets say that I have a source file on disk > and I wish to have a program invoke the compiler to > compile the file from disk into memory). All you > probably need is the entry point that the ACTION! monitor > calls when you type the "C" command; as well as knowing > where this routine expects to find the file name. > > 3) Is there some magical document that explains the above > and other mysteries (e.g. symbol table format ...) > > Please (!!!!!!) reply with ANY information to me at the following > address. > > > Alan J. Broder > ajb@mitre.arpa > (703)883-5614 (office - voice) Line Eater. Line Eater. You cannot Eat me this Time. I'm not exactly sure how this works, but I believe that you can chain programs by using the XIO routine. Compile the program that you wish to chain and save the compiled version to disk. When you want to run the second program, execute an XIO call with the number for loading a program. This will cause the second program to run. The first program has to have a starting address when it was saved. I have never done this before, my books are at home, and this is not my account so I don't have access to the net normally. Nothing here is guarranteed to work, but it is something to work with. Jamie Schmeiser U of Saskatchewan, Saskatoon, Saskatchewan Canada P.S. Try saying that five times quickly. It's easy for me!