ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:08 2020
Source File: \t2subin.asm
LIBF SUBIN
2 | * FORTRAN SUBROUTINE INITIALIZATION T2C00020
3 | LIBR SUBIN T2C00030
4 | ENT SUBIN T2C00040
5 | *************************************************** T2C00050
6 | * SUBROUTINE NAME * T2C00060
7 | * FULL NAME- SUBROUTINE INITIALIZATION * T2C00070
8 | * CODE NAME- SUBIN * T2C00080
9 | * PURPOSE- SYSTEM SUBROUTINE 'SUBIN' * T2C00090
10 | * INITIALIZES A FORTRAN SUBPROGRAM BY * T2C00100
11 | * TRANSFERRING THE ADDRESSES IN THE * T2C00110
12 | * ARGUMENT LIST OF THE CALLING PROGRAM * T2C00120
13 | * AND INSERTING THEM AS ADDRESSES OF * T2C00130
14 | * DUMMY VARIABLES IN THE CALLED * T2C00140
15 | * SUBPROGRAM. * T2C00150
16 | * IT ALSO INCREMENTS THE ADDRESS IN * T2C00160
17 | * THE LINK WORD OF THE SUBPROGRAM BY * T2C00170
18 | * THE NUMBER OF ARGUMENTS SO THAT THE * T2C00180
19 | * LINK WORD WILL BECOME RETURN ADDRESS * T2C00190
20 | * (=FIRST WORD AFTER THE ARGUMENT LIST * T2C00200
21 | * IN THE CALLING PROGRAM). * T2C00210
22 | * * T2C00220
23 | * * T2C00230
24 | * * T2C00240
25 | * CALLING PROGRAM REFERS TO A * T2C00250
26 | * FORTRAN SUBPROGRAM WITH A LONG * T2C00260
27 | * BSI INSTRUCTION (ADDRESS = ADDRESS OF * T2C00270
28 | * THE SUBPROGRAM), FOLLOWED BY AN * T2C00280
29 | * ARGUMENT LIST. * T2C00290
30 | * * T2C00300
31 | * IN ORDER TO TRANSFER THESE ARGUMENTS, * T2C00310
32 | * THE FIRST EXECUTABLE INSTRUCTION IN * T2C00320
33 | * EACH SUBPROGRAM THAT HAS DUMMY * T2C00330
34 | * VARIABLES IS A SHORT BSI INSTRUCTION * T2C00340
35 | * (ADDRESS = TRANSFER VECTOR ADDRESS OF * T2C00350
36 | * 'SUBIN'), FOLLOWED BY A LIST OF ADD- * T2C00360
37 | * RESSES OF THE DUMMY VARIABLES TO * T2C00370
38 | * BE INSERTED. * T2C00380
39 | * * T2C00390
40 | * * T2C00400
41 | * * T2C00410
42 | * TO INDICATE WHICH DUMMY VARIABLE IS * T2C00420
43 | * REFERRED TO IN THE LIST, THE ARRAY OF * T2C00430
44 | * ADDRESSES REFERRING TO ONE DUMMY * T2C00440
45 | * VARIABLE IS TERMINATED BY A * T2C00450
46 | * ZERO. THE ZERO TERMINATING * T2C00460
47 | * THE LAST ARRAY IS FOLLOWED BY A * T2C00470
48 | * WORD = 0001 TO INDICATE THE END OF * T2C00480
49 | * THE LIST. (CONSTANT = 1 IS * T2C00490
50 | * USED SINCE IT CAN NEVER BE MISTAKEN * T2C00500
51 | * FOR AN ADDRESS.) * T2C00510
52 | * HAVING ENCOUNTERED CONSTANT OF ONE, * T2C00520
53 | * 'SUBIN' TRANSFERS CONTROL TO THE * T2C00530
54 | * NEXT WORD (AFTER THE CONSTANT), WHICH * T2C00540
55 | * IS THE NEXT POST-INITIALIZATION * T2C00550
56 | * EXECUTABLE INSTRUCTION. * T2C00560
57 | * * T2C00570
58 | * SUBROUTINES THAT HAVE NO ARGUMENTS * T2C00580
59 | * DO NOT REQUIRE SUBROUTINE 'SUBIN'. * T2C00590
60 | * * T2C00600
61 | * METHOD- N/A * T2C00610
62 | * CAPABILITIES AND LIMITATIONS- N/A * T2C00620
63 | * SPECIAL FEATURES- N/A * T2C00630
64 | * ADDITIONAL INFORMATION- N/A * T2C00640
65 | *************************************************** T2C00650
0000 1000 66 | SUBIN SLA 0 DUMMY-INSTRUCTION T2C00660
0001 C400 0000 67 | LD L *+*-*-* GET LINK WORD FROM TV T2C00670
0003 D006 68 | STO ADR1+1 T2C00680
0004 901A 69 | S TWO COMPUTE AND INSERT ADDRESS T2C00690
0005 D002 70 | STO ADR0+1 *OF LINK WORD (= SUBPROGRAM T2C00700
0006 D008 71 | STO ADR2+1 *LINK WORD) T2C00710
0007 6580 0000 72 | ADR0 LDX I1 *-* T2C00720
0009 C400 0000 73 | ADR1 LD L *-* GET NEXT ADDR, ZERO, OR ONE T2C00730
000B 4C20 0011R 74 | BSC L ADR3,Z BR IF NOT A ZERO T2C00740
000D 7101 75 | MDX 1 1 MOVE XR1 TO NEXT ARGUMENT T2C00750
000E 7401 0000 76 | ADR2 MDX L *-*,1 INCR ADDR IN LINK WORD T2C00760
0010 7007 77 | MDX ADR5 T2C00770
0011 D005 78 | ADR3 STO ADR4+1 INSERT ADDRESS T2C00780
0012 1801 79 | SRA 1 T2C00790
0013 4818 80 | BSC +- SKIP IF NOT ONE T2C00800
0014 7006 81 | MDX ADR6 BR IF END OF ARGUMENT LIST T2C00810
0015 C100 82 | LD 1 0 TRANSFER ONE ADDRESS FROM T2C00820
0016 D400 0000 83 | ADR4 STO L *-* ARGUMENT LIST OF CALL PROG T2C00830
0018 7401 000AR 84 | ADR5 MDX L ADR1+1,1 INCR SUBIN ARGUMENT POINTER T2C00840
001A 70EE 85 | MDX ADR1 T2C00850
001B 7401 000AR 86 | ADR6 MDX L ADR1+1,1 T2C00860
001D 4C80 000AR 87 | BSC I ADR1+1 RETURN TO SUBPROGRAM T2C00870
001F 0002 88 | TWO DC 2 T2C00880
89 | * (INITIALIZATION TERMINATED) T2C00890
90 | * T2C00900
91 | *************************************************** T2C00910
0020 92 | END T2C00920
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
ADR0 0007R 72 70
ADR1 0009R 73 68 84 85 86 87
ADR2 000ER 76 71
ADR3 0011R 78 74
ADR4 0016R 83 78
ADR5 0018R 84 77
ADR6 001BR 86 81
SUBIN 0000R 66
TWO 001FR 88 69