home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
clarion
/
ovlay.zip
/
OVLAY.CLA
< prev
next >
Wrap
Text File
|
1990-04-17
|
3KB
|
116 lines
MEMBER('OVSAMPLE') ! Must change to name of your program
STACK_PROC PROCEDURE(EPROC,CPROC,PROC_MSG)
EPROC BYTE
CPROC BYTE
PROC_MSG STRING(80)
CODE
IF ( (EPROC > LAST_PROC) OR (EPROC < 2) )
SETHUE(2,1,1)
BLANK
SETCURSOR(1,1)
TYPE(CR_LF & 'Invalid EX_PROC code in STACK_PROC ->' & EPROC |
& CR_LF)
RESTART(OVABN_ABORT)
.
IF ( (CPROC > LAST_PROC) OR (CPROC < 1) )
SETHUE(2,1,1)
BLANK
SETCURSOR(1,1)
TYPE(CR_LF & 'Invalid CALL_PROC code in STACK_PROC ->' & CPROC |
& CR_LF)
RESTART(OVABN_ABORT)
.
PAR:EX_PROC = EPROC
PAR:CALL_PROC = CPROC
PAR:PASS_MSG = PROC_MSG
PAR:CALL_STAT = 0
ADD(PAR_TABLE)
IF ERROR() THEN
SETHUE(2,1,1)
BLANK
SETCURSOR(1,1)
TYPE(CR_LF & 'UNABLE TO EXTEND PARAMETER TABLE' & CR_LF)
RESTART(OVABN_ABORT)
.
RETURN
PROC_CTL PROCEDURE
CODE
PT_RECS = RECORDS(PAR_TABLE)
LOOP WHILE PT_RECS > 0
SEL_PROC
PT_RECS = RECORDS(PAR_TABLE)
.
RETURN
SEL_PROC PROCEDURE
PRECS SHORT
CPROC BYTE
CODE
PRECS = RECORDS(PAR_TABLE)
IF PRECS = 0 THEN
SETHUE(2,1,1)
BLANK
SETCURSOR(1,1)
TYPE('SEL_PROC: EXPECTED MORE PARAM BLOCKS, NONE FOUND' & CR_LF)
RESTART(OVABN_ABORT)
.
GET(PAR_TABLE,RECORDS(PAR_TABLE))
PMSG = PAR:PASS_MSG
IF PAR:CALL_STAT = 1 THEN GOTO RET_CALL.
PAR:CALL_STAT = 1
PUT(PAR_TABLE)
IF ( (PAR:EX_PROC < 2) OR (PAR:EX_PROC > LAST_PROC) )
SETHUE(2,1,1)
BLANK
SETCURSOR(1,1)
TYPE(CR_LF & 'Invalid EX_PROC code in SEL_PROC ->' & PAR:EX_PROC |
& CR_LF)
RESTART(OVABN_ABORT)
.
! Execute statement must be customized to you application's procedures
EXECUTE PAR:EX_PROC
RETURN ! Note that even though return is
S1 ! not valid for EX_PROC, it must be
S2 ! listed since it is position 1 in
S3 ! equate list
.
RETURN
RET_CALL
CPROC = PAR:CALL_PROC
IF ( (CPROC > LAST_PROC) OR (CPROC < 1) )
SETHUE(2,1,1)
BLANK
SETCURSOR(1,1)
TYPE(CR_LF & 'Invalid CALL_PROC code in STACK_PROC ->' & CPROC |
& CR_LF)
RESTART(OVABN_ABORT)
.
DELETE(PAR_TABLE)
EXECUTE CPROC ! Execute structure is same as above
RETURN ! except that EX_PROC is replaced by
S1 ! CPROC and RETURN is now valid
S2
S3
.
OVABN_ABORT PROCEDURE
CODE
TYPE(CR_LF & CR_LF & 'Program aborted' & CR_LF)
TYPE('Press any key to continue...' & CR_LF)
ASK
RETURN