mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-25 17:34:06 +00:00
343 lines
16 KiB
Plaintext
343 lines
16 KiB
Plaintext
PL/M-86 COMPILER SUBROUTINE MODULE - PART 2 10/5/81 PAGE 1
|
||
|
||
|
||
ISIS-II PL/M-86 V2.0 COMPILATION OF MODULE SUBR2
|
||
OBJECT MODULE PLACED IN SUBR2.OBJ
|
||
COMPILER INVOKED BY: :F0: SUBR2.PLM DEBUG OPTIMIZE(2) DATE(10/5/81) PAGEWIDTH(100) XREF
|
||
|
||
|
||
|
||
$title ('SUBROUTINE MODULE - PART 2')
|
||
1 subr2:
|
||
do;
|
||
$include(:f1:macro.lit)
|
||
= $nolist
|
||
$INCLUDE (:F1:STRUC.LIT)
|
||
= $nolist
|
||
$include(:f1:io.ext)
|
||
= $nolist
|
||
|
||
/*
|
||
|
||
modified 3/26/81 R. Silberstein
|
||
modified 3/28/81 R. Silberstein
|
||
modified 3/30/81 R. Silberstein
|
||
|
||
*/
|
||
|
||
59 1 outtext: procedure (t) public;
|
||
60 2 dcl t addr,
|
||
ch based t byte;
|
||
61 2 do while ch <> 0;
|
||
62 3 call write$console(ch);
|
||
63 3 t=t+1;
|
||
64 3 end$while;
|
||
65 2 end outtext;
|
||
|
||
66 1 OUTFILENAME: PROCEDURE (PTR);
|
||
67 2 DECLARE PTR ADDRESS, X BASED PTR FILEOSTRUCTURE, I BYTE;
|
||
68 2 CALL WRITE$CONSOLE (X.DISK + 'A');
|
||
69 2 CALL WRITE$CONSOLE (':');
|
||
70 2 DO I = 1 TO 8;
|
||
71 3 IF (X.FCBBLOCK (I) AND 7FH) = SPACE THEN I = 8;
|
||
73 3 ELSE CALL WRITE$CONSOLE (X.FCBBLOCK (I) AND 7FH);
|
||
74 3 END;
|
||
75 2 CALL WRITE$CONSOLE ('.');
|
||
76 2 DO I = 9 TO 11;
|
||
77 3 CALL WRITE$CONSOLE (X.FCBBLOCK (I) AND 7FH);
|
||
78 3 END;
|
||
79 2 CALL SYSTEMRESET;
|
||
80 2 END OUTFILENAME;
|
||
|
||
81 1 FILEABORT: PROCEDURE (PTR, TEXTADR) PUBLIC;
|
||
82 2 DECLARE (PTR, TEXTADR) ADDRESS;
|
||
83 2 CALL OUTTEXT (TEXTADR);
|
||
84 2 CALL WRITE$CONSOLE (':');
|
||
85 2 CALL WRITE$CONSOLE (SPACE);
|
||
86 2 CALL OUTFILENAME (PTR);
|
||
87 2 END FILEABORT;
|
||
|
||
88 1 fill: procedure (ch,n,pt) public;
|
||
PL/M-86 COMPILER SUBROUTINE MODULE - PART 2 10/5/81 PAGE 2
|
||
|
||
|
||
89 2 dcl (ch,n) byte,pt address,buffer based pt byte;
|
||
90 2 DO WHILE (N := N - 1) <> 0FFH;
|
||
91 3 buffer=ch;
|
||
92 3 pt = pt + 1;
|
||
93 3 end$while;
|
||
94 2 end fill;
|
||
|
||
95 1 digit: procedure(ch) byte public;
|
||
96 2 dcl ch byte;
|
||
97 2 IF CH < '0' THEN RETURN FALSE;
|
||
99 2 return (ch <= '9');
|
||
100 2 end digit;
|
||
|
||
101 1 letter: procedure(ch) byte public;
|
||
102 2 dcl ch byte;
|
||
103 2 IF CH < 'A' THEN RETURN FALSE;
|
||
105 2 return (ch <= 'Z');
|
||
106 2 end letter;
|
||
|
||
107 1 alphanumeric: proc(ch) byte public;
|
||
108 2 dcl ch byte;
|
||
109 2 if letter(ch) then return true;
|
||
111 2 return digit(ch);
|
||
112 2 end alphanumeric;
|
||
|
||
113 1 asciichar: proc (ch) byte public;
|
||
114 2 dcl ch byte;
|
||
115 2 if ch=cr then return true;
|
||
117 2 IF CH = LF THEN RETURN TRUE;
|
||
119 2 IF CH < SPACE THEN RETURN FALSE;
|
||
121 2 return (ch <= 7eh);
|
||
122 2 end asciichar;
|
||
|
||
|
||
123 1 upper: procedure(ch) byte public;
|
||
124 2 dcl ch byte;
|
||
125 2 if ch >= 61h THEN IF ch <= 7eh then ch=ch-20h;
|
||
128 2 return ch;
|
||
129 2 end upper;
|
||
|
||
130 1 equal: procedure(n,s,d) byte public;
|
||
131 2 dcl n byte,
|
||
(s,d) address,
|
||
sch based s byte,
|
||
dch based d byte;
|
||
132 2 DO WHILE (N := N - 1) <> 0FFH;
|
||
133 3 IF SCH <> DCH THEN RETURN FALSE;
|
||
135 3 S = S + 1;
|
||
136 3 D = D + 1;
|
||
137 3 END$WHILE;
|
||
138 2 return true;
|
||
139 2 end equal;
|
||
|
||
|
||
140 1 hex1out: procedure(n,d) public;
|
||
141 2 dcl n byte,d addr,
|
||
dest based d (1) byte;
|
||
PL/M-86 COMPILER SUBROUTINE MODULE - PART 2 10/5/81 PAGE 3
|
||
|
||
|
||
142 2 hexdigit: procedure(digit) byte;
|
||
143 3 dcl digit byte;
|
||
144 3 digit=digit+'0';
|
||
145 3 if digit > '9' then digit=digit+7;
|
||
147 3 return digit;
|
||
148 3 end hexdigit;
|
||
|
||
149 2 dest(0)=hexdigit(SHR (N, 4));
|
||
150 2 dest(1)=hexdigit(n and 0fh);
|
||
151 2 end hex1out;
|
||
|
||
152 1 hex2out: proc (n,d) public;
|
||
153 2 dcl n addr,
|
||
d addr;
|
||
154 2 call hex1out(HIGH (N),d);
|
||
155 2 call hex1out(LOW (N),d+2);
|
||
156 2 end hex2out;
|
||
|
||
|
||
157 1 decout: proc (n,d) public;
|
||
158 2 dcl
|
||
n addr,
|
||
d address,
|
||
dest based d (1) byte,
|
||
(i,space$or$zero,digit) byte,
|
||
divis(5) addr data (10000,1000,100,10,1);
|
||
|
||
159 2 space$or$zero=space;
|
||
160 2 do i=0 to 4;
|
||
161 3 if i=4 then space$or$zero='0';
|
||
163 3 digit=n/divis(i);
|
||
164 3 n=n mod divis(i);
|
||
165 3 if digit=0 then$do
|
||
167 4 dest(i)=space$or$zero;
|
||
168 4 else$do
|
||
170 4 dest(i)=digit+'0';
|
||
171 4 space$or$zero='0';
|
||
172 4 end$if;
|
||
173 3 end$do;
|
||
174 2 end decout;
|
||
|
||
175 1 end subr2;
|
||
PL/M-86 COMPILER SUBROUTINE MODULE - PART 2 10/5/81 PAGE 4
|
||
|
||
|
||
CROSS-REFERENCE LISTING
|
||
-----------------------
|
||
|
||
|
||
DEFN ADDR SIZE NAME, ATTRIBUTES, AND REFERENCES
|
||
----- ------ ----- --------------------------------
|
||
|
||
|
||
2 ADDR . . . . . . . LITERALLY 60 67 141 153 158
|
||
107 0111H 27 ALPHANUMERIC . . . PROCEDURE BYTE PUBLIC STACK=000AH
|
||
113 012CH 42 ASCIICHAR. . . . . PROCEDURE BYTE PUBLIC STACK=0004H
|
||
3 BASEREGBIT . . . . LITERALLY
|
||
3 BASEREGCOUNT . . . LITERALLY
|
||
3 BREGBIT. . . . . . LITERALLY
|
||
3 BREGCOUNT. . . . . LITERALLY
|
||
89 0000H 1 BUFFER . . . . . . BYTE BASED(PT) 91
|
||
67 0024H 512 BUFFER . . . . . . BYTE ARRAY(512) MEMBER(X)
|
||
67 0022H 2 BUFPTR . . . . . . WORD MEMBER(X)
|
||
123 0004H 1 CH . . . . . . . . BYTE PARAMETER AUTOMATIC 124 125 126 127
|
||
128
|
||
113 0004H 1 CH . . . . . . . . BYTE PARAMETER AUTOMATIC 114 115 117 119
|
||
121
|
||
60 0000H 1 CH . . . . . . . . BYTE BASED(T) 61 62
|
||
88 0008H 1 CH . . . . . . . . BYTE PARAMETER AUTOMATIC 89 91
|
||
95 0004H 1 CH . . . . . . . . BYTE PARAMETER AUTOMATIC 96 97 99
|
||
107 0004H 1 CH . . . . . . . . BYTE PARAMETER AUTOMATIC 108 109 111
|
||
101 0004H 1 CH . . . . . . . . BYTE PARAMETER AUTOMATIC 102 103 105
|
||
21 0000H 1 CHAR . . . . . . . BYTE PARAMETER 22
|
||
18 0000H 1 CHAR . . . . . . . BYTE PARAMETER 19
|
||
37 0000H CLOSEFILE. . . . . PROCEDURE BYTE EXTERNAL(15) STACK=0000H
|
||
3 CODEMACROHEAD. . . LITERALLY
|
||
24 0000H CONSTAT. . . . . . PROCEDURE BYTE EXTERNAL(10) STACK=0000H
|
||
2 CR . . . . . . . . LITERALLY 115
|
||
49 0000H CREATEFILE . . . . PROCEDURE BYTE EXTERNAL(19) STACK=0000H
|
||
57 0000H CRLF . . . . . . . PROCEDURE EXTERNAL(22) STACK=0000H
|
||
140 0004H 2 D. . . . . . . . . WORD PARAMETER AUTOMATIC 141 149 150
|
||
152 0004H 2 D. . . . . . . . . WORD PARAMETER AUTOMATIC 153 154 155
|
||
130 0004H 2 D. . . . . . . . . WORD PARAMETER AUTOMATIC 131 133 136
|
||
157 0004H 2 D. . . . . . . . . WORD PARAMETER AUTOMATIC 158 167 170
|
||
131 0000H 1 DCH. . . . . . . . BYTE BASED(D) 133
|
||
2 DCL. . . . . . . . LITERALLY
|
||
157 01FEH 122 DECOUT . . . . . . PROCEDURE PUBLIC STACK=0006H
|
||
40 0000H DELETEFILE . . . . PROCEDURE EXTERNAL(16) STACK=0000H
|
||
158 0000H 1 DEST . . . . . . . BYTE BASED(D) ARRAY(1) 167 170
|
||
141 0000H 1 DEST . . . . . . . BYTE BASED(D) ARRAY(1) 149 150
|
||
158 0003H 1 DIGIT. . . . . . . BYTE 163 165 170
|
||
95 00DDH 26 DIGIT. . . . . . . PROCEDURE BYTE PUBLIC STACK=0004H 111
|
||
142 0004H 1 DIGIT. . . . . . . BYTE PARAMETER AUTOMATIC 143 144 145 146
|
||
147
|
||
67 0000H 1 DISK . . . . . . . BYTE MEMBER(X) 68
|
||
28 0000H 1 DISKNUMBER . . . . BYTE PARAMETER 29
|
||
158 0000H 10 DIVIS. . . . . . . WORD ARRAY(5) DATA 163 164
|
||
54 0000H 2 DMAADDRESS . . . . WORD PARAMETER 55
|
||
2 ELSEDO . . . . . . LITERALLY
|
||
13 0000H 2 ENDBUF . . . . . . WORD EXTERNAL(5)
|
||
2 ENDCASE. . . . . . LITERALLY
|
||
2 ENDDO. . . . . . . LITERALLY
|
||
PL/M-86 COMPILER SUBROUTINE MODULE - PART 2 10/5/81 PAGE 5
|
||
|
||
|
||
2 ENDFOREVER . . . . LITERALLY
|
||
2 ENDIF. . . . . . . LITERALLY
|
||
2 ENDMODULE. . . . . LITERALLY
|
||
2 ENDOFFILE. . . . . LITERALLY
|
||
2 ENDPROC. . . . . . LITERALLY
|
||
2 ENDWHILE . . . . . LITERALLY
|
||
130 0170H 45 EQUAL. . . . . . . PROCEDURE BYTE PUBLIC STACK=0008H
|
||
2 FALSE. . . . . . . LITERALLY 98 104 120 134
|
||
10 0000H 1 FCB. . . . . . . . BYTE ARRAY(1) EXTERNAL(2)
|
||
11 0000H 1 FCB16. . . . . . . BYTE ARRAY(1) EXTERNAL(3)
|
||
49 0000H 2 FCBADDRESS . . . . WORD PARAMETER 50
|
||
31 0000H 2 FCBADDRESS . . . . WORD PARAMETER 32
|
||
43 0000H 2 FCBADDRESS . . . . WORD PARAMETER 44
|
||
40 0000H 2 FCBADDRESS . . . . WORD PARAMETER 41
|
||
37 0000H 2 FCBADDRESS . . . . WORD PARAMETER 38
|
||
34 0000H 2 FCBADDRESS . . . . WORD PARAMETER 35
|
||
46 0000H 2 FCBADDRESS . . . . WORD PARAMETER 47
|
||
67 0001H 33 FCBBLOCK . . . . . BYTE ARRAY(33) MEMBER(X) 71 73 77
|
||
81 009EH 31 FILEABORT. . . . . PROCEDURE PUBLIC STACK=0010H
|
||
3 FILEISTRUCTURE . . LITERALLY
|
||
3 FILEOSTRUCTURE . . LITERALLY 67
|
||
88 00BDH 32 FILL . . . . . . . PROCEDURE PUBLIC STACK=0008H
|
||
2 FOREVER. . . . . . LITERALLY
|
||
2 FORMFEED . . . . . LITERALLY
|
||
7 0000H 1 FUNC . . . . . . . BYTE PARAMETER 8
|
||
4 0000H 1 FUNC . . . . . . . BYTE PARAMETER 5
|
||
140 019DH 38 HEX1OUT. . . . . . PROCEDURE PUBLIC STACK=000CH 154 155
|
||
152 01DDH 33 HEX2OUT. . . . . . PROCEDURE PUBLIC STACK=0014H
|
||
142 01C3H 26 HEXDIGIT . . . . . PROCEDURE BYTE STACK=0004H 149 150
|
||
HIGH . . . . . . . BUILTIN 154
|
||
158 0001H 1 I. . . . . . . . . BYTE 160 161 163 164 167 170
|
||
67 0000H 1 I. . . . . . . . . BYTE 70 71 72 73 76 77
|
||
3 INDEXREGBIT. . . . LITERALLY
|
||
3 INDEXREGCOUNT. . . LITERALLY
|
||
7 0000H 2 INFO . . . . . . . WORD PARAMETER 8
|
||
4 0000H 2 INFO . . . . . . . WORD PARAMETER 5
|
||
2 INIT . . . . . . . LITERALLY
|
||
52 0000H INTERROGATEDISK. . PROCEDURE BYTE EXTERNAL(20) STACK=0000H
|
||
3 IREGBIT. . . . . . LITERALLY
|
||
3 IREGCOUNT. . . . . LITERALLY
|
||
101 00F7H 26 LETTER . . . . . . PROCEDURE BYTE PUBLIC STACK=0004H 109
|
||
2 LF . . . . . . . . LITERALLY 117
|
||
2 LIT. . . . . . . . LITERALLY 2 3
|
||
LOW. . . . . . . . BUILTIN 155
|
||
4 0000H MON1 . . . . . . . PROCEDURE EXTERNAL(0) STACK=0000H
|
||
7 0000H MON2 . . . . . . . PROCEDURE BYTE EXTERNAL(1) STACK=0000H
|
||
157 0006H 2 N. . . . . . . . . WORD PARAMETER AUTOMATIC 158 163 164
|
||
152 0006H 2 N. . . . . . . . . WORD PARAMETER AUTOMATIC 153 154 155
|
||
140 0006H 1 N. . . . . . . . . BYTE PARAMETER AUTOMATIC 141 149 150
|
||
130 0008H 1 N. . . . . . . . . BYTE PARAMETER AUTOMATIC 131 132
|
||
88 0006H 1 N. . . . . . . . . BYTE PARAMETER AUTOMATIC 89 90
|
||
3 NOOVERCOUNT. . . . LITERALLY
|
||
3 NOOVERRIDEBIT. . . LITERALLY
|
||
31 0000H OPENFILE . . . . . PROCEDURE BYTE EXTERNAL(13) STACK=0000H
|
||
34 0000H OPENROFILE . . . . PROCEDURE BYTE EXTERNAL(14) STACK=0000H
|
||
3 OPERANDSTRUC . . . LITERALLY
|
||
66 0019H 133 OUTFILENAME. . . . PROCEDURE STACK=0008H 86
|
||
PL/M-86 COMPILER SUBROUTINE MODULE - PART 2 10/5/81 PAGE 6
|
||
|
||
|
||
59 0000H 25 OUTTEXT. . . . . . PROCEDURE PUBLIC STACK=0008H 83
|
||
2 PROC . . . . . . . LITERALLY 107 113 152 157
|
||
88 0004H 2 PT . . . . . . . . WORD PARAMETER AUTOMATIC 89 91 92
|
||
81 0006H 2 PTR. . . . . . . . WORD PARAMETER AUTOMATIC 82 86
|
||
66 0004H 2 PTR. . . . . . . . WORD PARAMETER AUTOMATIC 67 68 71 73
|
||
77
|
||
16 0000H READCONSOLE. . . . PROCEDURE BYTE EXTERNAL(7) STACK=0000H
|
||
43 0000H READRECORD . . . . PROCEDURE BYTE EXTERNAL(17) STACK=0000H
|
||
2 REENT. . . . . . . LITERALLY
|
||
130 0006H 2 S. . . . . . . . . WORD PARAMETER AUTOMATIC 131 133 135
|
||
131 0000H 1 SCH. . . . . . . . BYTE BASED(S) 133
|
||
3 SEGMBIT. . . . . . LITERALLY
|
||
3 SEGMCOUNT. . . . . LITERALLY
|
||
3 SEGTYPEBIT . . . . LITERALLY
|
||
3 SEGTYPECOUNT . . . LITERALLY
|
||
28 0000H SELECTDISK . . . . PROCEDURE EXTERNAL(12) STACK=0000H
|
||
54 0000H SETDMAADDRESS. . . PROCEDURE EXTERNAL(21) STACK=0000H
|
||
SHR. . . . . . . . BUILTIN 149
|
||
2 SPACE. . . . . . . LITERALLY 71 85 119 159
|
||
158 0002H 1 SPACEORZERO. . . . BYTE 159 162 167 171
|
||
2 STRUC. . . . . . . LITERALLY 67
|
||
1 0000H SUBR2. . . . . . . PROCEDURE STACK=0000H
|
||
3 SYMBOLHEAD . . . . LITERALLY
|
||
3 SYMBOLSTRUC. . . . LITERALLY
|
||
14 0000H SYSTEMRESET. . . . PROCEDURE EXTERNAL(6) STACK=0000H 79
|
||
59 0004H 2 T. . . . . . . . . WORD PARAMETER AUTOMATIC 60 61 62 63
|
||
|
||
2 TAB. . . . . . . . LITERALLY
|
||
12 0000H 1 TBUFF. . . . . . . BYTE ARRAY(1) EXTERNAL(4)
|
||
81 0004H 2 TEXTADR. . . . . . WORD PARAMETER AUTOMATIC 82 83
|
||
2 THENDO . . . . . . LITERALLY 165
|
||
2 TRUE . . . . . . . LITERALLY 110 116 118 138
|
||
3 TYPEBIT. . . . . . LITERALLY
|
||
3 TYPECOUNT. . . . . LITERALLY
|
||
123 0156H 26 UPPER. . . . . . . PROCEDURE BYTE PUBLIC STACK=0004H
|
||
26 0000H VERSION. . . . . . PROCEDURE WORD EXTERNAL(11) STACK=0000H
|
||
18 0000H WRITECONSOLE . . . PROCEDURE EXTERNAL(8) STACK=0000H 62 68
|
||
69 73 75 77 84 85
|
||
21 0000H WRITELIST. . . . . PROCEDURE EXTERNAL(9) STACK=0000H
|
||
46 0000H WRITERECORD. . . . PROCEDURE BYTE EXTERNAL(18) STACK=0000H
|
||
67 0000H 548 X. . . . . . . . . STRUCTURE BASED(PTR) 68 71 73 77
|
||
|
||
|
||
|
||
MODULE INFORMATION:
|
||
|
||
CODE AREA SIZE = 0278H 632D
|
||
CONSTANT AREA SIZE = 000AH 10D
|
||
VARIABLE AREA SIZE = 0004H 4D
|
||
MAXIMUM STACK SIZE = 0014H 20D
|
||
372 LINES READ
|
||
0 PROGRAM ERROR(S)
|
||
|
||
END OF PL/M-86 COMPILATION
|