[net.micro.atari8] ACTION! plea, once again

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!