SUBROUTINE WITH PARAMETERS
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT
000000 2 P1 START
000000 05C0 3 BALR 12,0
00002 4 USING *,12
5 * ILLUSTRATE PARAMETERS WITHOUT USING IBM
6 * STANDARD CONVENTIONS. THIS IS TO REDUCE BULK OF PROGRAM
7 * a:=1
8 * B:=2
9 * CALL BLAH(A,B,C) c:=A+B
10 * E:=6
11 * CALL BLAH(E,C,F) F:=E+C
12 * G:=7
13 * CALL BLAH(G,F,H) H:=G+F
14 *
15 * BLAH: PROCEDURE (Q,R,VAR S)
16 * S:=Q+R
17 * END BLAH
18 * YOUR PROGRAM GOES HERE
19 *
000002 5810 C0C2 000C4 20 L 1,F1
000006 5010 C082 00084 21 ST 1,A
00000A 5820 C0C6 000C8 22 L 2,F2
00000E 5020 C086 00088 23 ST 2,B
24 * NOW LOAD UP PARAMETER CONTROL BLOCK
000012 5810 C082 00084 25 L 1,A
000016 5010 C0A2 000A4 26 ST 1,PCB+0
00001A 5810 C086 00088 27 L 1,B
00001E 5010 C0A6 000A8 28 ST 1,PCB+4
000022 4110 C08A 0008C 29 LA 1,C
000026 5010 C0AA 000AC 30 ST 1,PCB+8
00002A 4110 C0A2 000A4 31 LA 1,PCB
32 * NOW WE CAN ACTUALLY CALL THE SUBROUTINE
00002E 4550 C0AE 000B0 33 BAL 5,BLAH
34 * BACK FROM SUBROUTINE
000032 5810 C0CA 000CC 35 L 1,F6
000036 5010 C092 00094 36 ST 1,E
37 * NOW LOAD UP PARAMETER CONTROL BLOCK
00003A 5810 C092 00094 38 L 1,E
00003E 5010 C0A2 000A4 39 ST 1,PCB+0
000042 5810 C08A 0008C 40 L 1,C
000046 5010 C0A6 000A8 41 ST 1,PCB+4
00004A 4110 C096 00098 42 LA 1,F
00004E 5010 C0AA 000AC 43 ST 1,PCB+8
000052 4110 C0A2 000A4 44 LA 1,PCB
SUBROUTINE WITH PARAMETERS
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT
46 * NOW WE CAN ACTUALLY CALL THE SUBROUTINE
000056 4550 C0AE 000B0 47 BAL 5,BLAH
48 * BACK FROM SUBROUTINE
00005A 5810 C0CE 000D0 49 L 1,F7
00005E 5010 C09A 0009C 50 ST 1,G
51 * NOW LOAD UP PARAMETER CONTROL BLOCK
000062 5810 C09A 0009C 52 L 1,G
000066 5010 C0A2 000A4 53 ST 1,PCB+0
00006A 5810 C096 00098 54 L 1,F
00006E 5010 C0A6 000A8 55 ST 1,PCB+4
000072 4110 C09E 000A0 56 LA 1,H
000076 5010 C0AA 000AC 57 ST 1,PCB+8
00007A 4110 C0A2 000A4 58 LA 1,PCB
59 * NOW WE CAN ACTUALLY CALL THE SUBROUTINE
60 *
00007E 4550 C0AE 000B0 61 BAL 5,BLAH
000082 07FE 62 BR 14
63 *
000084 64 A DS F
000088 65 B DS F
00008C 66 C DS F
000090 67 D DS F
000094 68 E DS F
000098 69 F DS F
00009C 70 G DS F
0000A0 71 H DS F
0000A4 72 PCB DS 3F PARAMETER CONTROL BLOCK FOR BLAH
73 * FIRST WORD (+0) CONTAINS FIRST THING TO ADD
74 * SECOND WORD (+4) CONTAINS SECOND THING TO ADD
75 * THIRD WORD (+8) CONTAINS ADDRESS OF PLACE TO PUT
76 * ANSWER
000B0 77 BLAH EQU *
78 * oN ENTRY R1 CONTAINS ADDRESS OF PARAMETER CONTROL BLOCK
0000B0 5840 1000 00000 79 L 4,0(0,1)
0000B4 5A40 1004 00004 80 A 4,4(0,1) R4 NOW CONTAINS THE SUM
0000B8 5820 1008 00008 81 L 2,8(0,1) R2 NOW CONTAINS ADDRESS OF PLACE TO PUT SUM
0000BC 5040 2000 00000 82 ST 4,0(0,2) STORE SUM
0000C0 07F5 83 BR 5 BLAH ENDS
84 * END OF YOUR PROGRAM
85 * CONSTANTS
0000C2 0000
0000C4 00000001 86 F1 DC F'1'
0000C8 00000002 87 F2 DC F'2'
0000CC 00000006 88 F6 DC F'6'
0000D0 00000007 89 F7 DC F'7'
90 END