ASMB,L,C NAM PRM.C,7 92060-16102 780921 REV. 1901 $CLIB * * SOURCE: 92060-18065 * * PROCEDURE PRM.C(PARAMETER#); * VALUE PARAMETER#; INTEGER PARAMETER#; * BEGIN * GLOBAL STRING INSTRING; * GLOBAL INTEGER ARRAY PASSED; * GLOBAL BOOLEAN SONFLAG; * GLOBAL INTEGER LENGTH; * INTEGER I, * POINTER; * INTEGER ARRAY NAMBUFFER[0:9]; * IF SONFLAG AND PRAMETER# < 6 THEN * BEGIN * A := PASSED[PARAMETER#]; * B := 0; * END * ELSE * BEGIN * POINTER := 1; * FOR I := -1 TO PARAMETER# DO * NAMR(NAMBUFFER,INSTRING,LENGTH,POINTER); * END; * END OF PRM.C; SKP * PROCEDURE PRM.C(PARAMETER#); * VALUE PARAMETER#; INTEGER PARAMETER#; ENT PRM.C * GLOBAL STRING INSTRING; EXT C.TRN THE TURN ON STRING * GLOBAL INTEGER ARRAY PASSED; EXT C.PAS THE ARRAY OF PASSED PARAMETERS .CPAS DEF C.PAS+0 * GLOBAL BOOLEAN SONFLAG; EXT C.SON * GLOBAL INTEGER LENGTH; EXT C.LEN THE TURN ON STRING LENGTH * GLOBAL PROCEDURE NAMR(DEST,SOURCE,LENGTH,RUNNINGPOINTER)\ EXT NAMR THE NAMR PARSE ROUTINE A EQU 0 B EQU 1 * BEGIN * INTEGER I, I BSS 1 * POINTER; POINT BSS 1 * INTEGER ARRAY NAMBF[0:9] NAMBF BSS 10 PRAM# BSS 1 PRM.C BSS 1 LDA PRM.C,I LDA A,I GET THE PARAMETER# * IF SONFLAG AND PRAMETER# < 6 THEN STA PRAM# ADA =D-6 AND C.SON SSA,RSS JMP L1 * BEGIN * A := PASSED[PARAMETER#]; LDB .CPAS JMP *+2 LDB B,I RBL,CLE,SLB,ERB JMP *-2 ADB =D-1 ADB PRAM# LDA B,I * B := 0; CLB * END JMP EXIT * ELSE * BEGIN L1 EQU * * POINTER := 1; CLB,INB STB POINT * FOR I := -1 TO PARAMETER# DO LDA PRAM# CMA,INA ADA =D-2 STA I * NAMR(PARSEDBUFFER,INSTRING,LENGTH,POINTER); FLOOP JSB NAMR DEF *+4+1 .NAMB DEF NAMBF DEF C.TRN DEF C.LEN DEF POINT * END; ISZ I JMP FLOOP LDA NAMBF LDB .NAMB CLE,ELB EXIT ISZ PRM.C JMP PRM.C,I END * END OF PRM.C;