Originally posted by: langdon@lll-lcc.UUcp (Bruce Langdon)
Article-I.D.: lll-lcc.201
Posted: Fri Mar 21 14:39:04 1986
Date-Received: Sat, 22-Mar-86 23:22:43 EST
References: <8603101331.AA19883@mitre.ARPA>
Organization: Lawrence Livermore Labs, LCC, Livermore Ca
Lines: 69
Summary: CHAIN.ACT, from OSS
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