1
0
mirror of https://github.com/pkimpel/retro-220.git synced 2026-01-13 15:18:24 +00:00

1. Commit additional transcriptions for BALGOL intrinsic functions.

2. Commit initial transcription work for BALGOL compiler-generator program.
3. Commit corrections and enhancements to tools/BAC-Assembler.html and tools/BAC-Xscript-Reformatter.wsf to support additional assembly syntax found in the intrinsics.
This commit is contained in:
Paul Kimpel 2017-01-22 09:58:12 -08:00
parent 1133226fc0
commit d4c6799b25
21 changed files with 930 additions and 32 deletions

View File

@ -0,0 +1,311 @@
6 11 17 40 52 60
SEQ PLAC ADDR WORD LABEL OPCODE OPERAND
1 LOAD 0000
2 ON TAPE,1/4999
3
4
5 THE COMPILER GENERATOR
6
7 DEFINITIONS FOR THE COMPILER
8
9 CHAR IS 179
10 SCNCT IS 225
11 VARB IS 251
12 CCCNT IS 1587
13 CCBEG IS 1618
14 IMAG IS 1632
15 NUTBL IS 3129
16 XONE IS 4097+2
17 SCRTB IS 4114+2
18 SSC IS 4214+2
19 LOCN IS 4215+2
20 MAMAX IS 4225+2
21 HDNG IS 4517
22
23 DEFINITIONS FOR THE OVERLAY
24
25 B IS 5200+13
26 ZERO IS 5200+27
27 LODOX IS 5200+74
28 LIBRARYTABLE
29 IS 1857
30 NUMB IS 4800+1335
31 LOD2 IS 4800+3127
32 POSCT IS 4800+3384
33 HALT IS 4800+3450
34
35 DEFINITIONS FOR OBJECT PROGRAM CARD LOADER
36
37 FIX IS 4240
38
39
40
41 0000 0 0000 30 0002 BUN LOAD
42 0001 0 0000 30 0023 BUN STORE
43 0002 0 0018 50 0000 LOAD MRW 010
44 0003 0 0004 45 0000 CLB
45 0004 1 0001 52 0000 1 -MNC 0,0,0
46 0005 0 0000 42 0006 LDB $+1
47 0006 0 0001 45 0999 CLA 999
48 0007 1 0000 12 0000 2 -ADD 0
49 0008 0 0001 21 0007 DBB 2B,1
50 0009 0 0000 36 0015 BZA 3F
51 0010 0 0040 09 2355 SPO R-CHECK SUM ERROR-
52 0011 0 0001 58 0000 MPB 0,0
53 0012 0 0272 00 2720 HLT 2720,0272(44)
54 0013 0 0000 42 0007 LDB 2B
55 0014 0 0000 30 0004 BUN 1B
56 0015 0 1107 27 0016 3 DFL $+1/11,1
57 0016 0 4000 42 0007 LDB 2B,4(11)
58 0017 0 0999 20 0018 IBB $+1,999
59 0018 0 0412 40 0007 STB 2B/04
60 0019 0 0000 32 0004 BRP 1B
61 0020 0 1105 27 0016 DFL 3B+1/11,5
62 0021 0 0410 40 0007 STA 2B/04
63 0022 0 0000 31 0046 BOF THEBEGINNING
64
65
66 0023 0 0018 50 0000 STORE MRW 010
67 0024 0 0000 42 0025 1 LDB $+1
68 0025 0 4001 45 0998 CLA 998,4(11)
69 0026 1 0000 12 0000 2 -ADD 0
70 0027 0 0001 21 0026 DBB $-1,1
71 0028 0 0000 42 0026 LDB 2B
72 0029 1 0000 41 0999 -LDR 999
73 0030 1 0000 40 0999 -STA 999
74 0031 1 0000 11 0999 -CSU 999
75 0032 1 0000 40 0999 -STA 999
76 0033 1 0000 56 0000 -MOW 0,0,0
77 0034 1 0001 40 0999 -STR 999
78 0035 0 0999 20 0036 IBB $+1,999
79 0036 0 0412 40 0026 STB 2B/04
80 0037 0 1101 27 0025 DFL 1B+1/11,1
81 0038 0 0000 32 0024 BRP 1B
82 0039 0 0000 31 0040 BOF $+1
83 0040 0 0018 50 0000 MRW 010
84 0041 0 1248 00 8421 HLT 8421,1248(44)
85 0042 0 0007 45 0000 CLT
86 0043 0 0410 40 0026 STA 2B/04
87 0044 0 1106 27 0025 DFL 1B+1/11,6
88 0045 0 0000 30 0002 BUN LOAD
89
90
91 THEBEGINNING
92 0046 0 0060 09 2349 SPO LRT-THECOMPILER GENERATOR-R
93 0047 0 1101 26 0051 IFL 20F/11,1
94 0048 0 1101 26 0049 IFL $+1/11,1
95 0049 0 0000 64 0051 CRI 20F,0
96 0050 0 0000 30 0049 BUN THEBEGINNING+3
97 0051 0 0002 62 1517 20 CRF ALFORMAT,0,2
98 0052 0 0008 50 0000 MRW 0
99 0053 0 0000 44 0115 21 DO SAN
54 0 0000 30 0107
100 0055 0 0010 18 2337 CFA -COMME-/00
101 0056 0 0000 35 0134 BCE COMMENT
102 0057 0 0010 18 2411 CFA -COPYC-/00
103 0058 0 0000 35 0139 BCE COMPILERTAPEUNIT
104 0059 0 0010 18 2394 CFA -COMPI-/00
105 0060 0 0000 35 0268 BCE SETLOCN
106 0061 0 0010 18 2416 CFA -GENER-/00
107 0062 0 0000 35 0290 BCE VERSION
108 0063 0 0010 18 2302 CFA -SETSC-/00
109 0064 0 0000 35 0144 BCE SETSCAN
110 0065 0 0010 18 2414 CFA -PRINT-/00
111 0066 0 0000 35 0161 BCE SETPRINTER
112 0067 0 0010 18 2293 CFA -VARIA-/00
113 0068 0 0000 35 0240 BCE VARIABLES
114 0069 0 0010 18 2340 CFA -CARDP-/00
115 0070 0 0000 35 0167 BCE SETPUNCH
116 0071 0 0010 18 2341 CFA -CARDR-/00
117 0072 0 0000 35 0172 BCE SETREADER
118 0073 0 0010 18 2410 CFA -MACHI-/00
119 0074 0 0000 35 0178 BCE SETSCRATCH
120 0075 0 0010 18 2420 CFA -CORRE-/00
121 0076 0 0000 35 0192 BCE SETCORRECTIONS
122 0077 0 0010 18 2393 CFA -MEMOR-/00
123 0078 0 0000 35 0225 BCE SETSIZE
124 0079 0 0010 18 2397 CFA -PROCE-/00
125 0080 0 0000 35 0245 BCE SETPROCESSBIT
126 0081 0 0010 18 2335 CFA -POSIT-/00
127 0082 0 0000 35 0248 BCE SETUPFORPOSITIONFORWARD
128 0083 0 0010 18 2396 CFA -PUNCH-/00
129 0084 0 0000 35 0260 BCE SETTHEPUNCHLIBRARYBIT
130 0085 0 0010 18 2381 CFA -SUPPR-/00
131 0086 0 0000 35 0266 BCE THEREGOESTHEHALT
132 0087 0 0010 18 2365 CFA -DELET-/00
133 0088 0 0000 35 0100 BCE WHATGOES
134 0089 0 0010 18 2440 CFA -INPUT-/00
135 0090 0 0000 35 0603 BCE INPUTMEDIA
136 0091 0 0010 18 2291 CFA -OUTPU-/00
137 0092 0 0000 35 0767 BCE OUTPUTMEDIA
138 0093 0 0010 18 2310 CFA -FINIS-/00
139 0094 0 0000 35 0387 BCE FINIS
140 STATEMENTERROR
141 0095 0 0050 09 2382 SPO R-INCORRECT STATEMENT-RRIII
142 0096 0 0160 09 1778 SPO INPUT,16
143 0097 0 0010 09 2342 SPO RRRRR--
144 0098 0 1370 00 7310 HLT 7310,1370(44)
145 0099 0 0000 30 0098 BUN $-1
146
147
148 0100 0 0000 44 0115 WHATGOES DO SCAN
0101 0 0000 30 0107
149 0102 0 0010 18 2374 CFA -EOUTP-/00
150 0103 0 0000 35 0364 BCE OUTPUTFORMATS
151 0104 0 0010 18 2418 CFA -EINPU-/00
152 0105 0 0000 35 0360 BCE INPUTFORMATS
153 0106 0 0000 30 0095 BUN STATEMENTERROR
154
155
156 0107 0 0000 46 0116 SCAN.1 CLL IMAGE.1
157 0108 0 0000 44 0125 3 DO CHARACTER
0109 0 0000 30 0117
158 0110 0 0000 49 0009 1 SLA 8
159 0111 0 0000 19 0116 ADL IMAGE.1
160 0112 0 0102 27 0110 DFL 1B/01,2
161 0113 0 0000 32 0108 BRP 3B
162 0114 0 0000 10 0116 CAD IMAGE.1
163 0115 0 0000 30 0115 SCAN BUN SCAN
164 0116 0 0000 00 0000 IMAGE.1 (0)
165
166
167 CHARACTER.1
168 IS $+1
169 0117 0 0502 26 0133 3 IFL SCNCT.1/05,2
170 0118 0 9400 28 0133 DLB SCNCT.1/94
171 0119 1 0000 10 1778 -CAD INPUT
172 0120 0 0000 42 0133 LDB SCNCT.1
173 0121 0 0160 21 0126 DBB 40F,160
174 0122 1 0000 49 0002 -SLA 2
175 0123 0 0000 17 2270 EXT =11=
176 0124 0 0000 36 0117 BZA 3B
177 0125 0 0000 30 0125 CHARACTER BUN CHARACTER
178 0126 0 0000 41 0051 40 LDR 20B
179 0127 0 1111 40 0128 STR $+1/11
180 0128 0 0010 60 1793 CNC INPUT+15,0
181 0129 0 0000 10 1793 CAD INPUT+15
182 0130 0 0000 46 0133 CLL SCNCT.1
183 0131 0 0002 33 0117 BSA 3B,2
184 0132 0 0000 30 0095 BUN STATEMENTERROR
185 0133 0 0000 00 0158 SCNCT.1 (158)
186
187
188 0134 0 0502 27 0133 COMMENT DFL SCNCT.1/05,2
189 0135 0 0000 44 0125 DO CHARACTER
0136 0 0000 30 0117
190 0137 0 0213 36 0053 BFA 21B/02,13
191 0138 0 0000 30 0117 BUN CHARACTER.1
192
193
194 COMPILERTAPEUNIT
195 0139 0 0000 44 0359 DO TAPENUMSCAN
0140 0 0000 30 0352
196 0141 0 0000 49 0007 SLA 7
197 0142 0 3310 40 1520 STA COMPILER/33
198 0143 0 0000 30 0134 BUN COMMENT
199
200
201 0144 0 0000 44 0350 SETSCAN DO BASICNUMSCAN
0145 0 0000 30 0337
202 0146 0 0000 40 1676 STA HOLD0
203 0147 0 0000 12 1676 ADD HOLD0
204 0148 0 0000 49 0006 SLA 6
205 0149 0 4210 40 2451 STA TBL+3/42
206 0150 0 0000 44 0350 DO BASICNUMSCAN
0151 0 0000 30 0337
207 0152 0 0000 40 1676 STA HOLD0
208 0153 0 0000 12 1676 ADD HOLD0
209 0154 0 0000 49 0006 SLA 6
210 0155 0 4410 40 2249 STA TBL+1/44
211 0156 0 4204 27 2451 DFL TBL+3/42,4
212 0157 0 0000 30 0134 BUN COMMENT
213 0158 0 0000 10 2449 SETSCAN.1 CRD TBL+1
214 0159 1 4410 40 1677 -STA IA/44
215 0160 0 0000 30 0514 BUN RETURN
216
217
218 0161 0 0000 44 0350 SETPRINTER DO BASICNUMSCAN
0162 0 0000 30 0337
219 0163 0 0000 49 0009 SLA 9
220 0164 0 1110 40 1801 STA PRINTER/11
221 0165 0 1110 40 0792 STA UNIT2/11
222 0166 0 0000 30 0134 BUN COMMENT
223
224
225 0167 0 0000 44 0350 SETPUNCH DO BASICNUMSCAN
0168 0 0000 30 0337
226 0169 0 0000 49 0009 SLA 9
227 0170 0 1110 40 1803 STA PUNCH/11
228 0171 0 0000 30 0134 BUN COMMENT
229
230
231 0172 0 0000 44 0350 SETREADER DO BASICNUMSCAN
0173 0 0000 30 0337
232 0174 0 0000 49 0009 SLA 9
233 0175 0 1110 40 1823 STA READER/11
234 0176 0 1110 40 0621 STA UNIT1/11
235 0177 0 0000 30 0134 BUN COMMENT
236
237
238 0178 0 0000 44 0359 SETSCRATCH DO TAPENUMSCAN
0179 0 0000 30 0352
239 0180 0 0000 49 0007 SLA 7
240 0181 0 3310 40 1827 STA SCRATCHML/33
241 0182 0 0002 49 0003 SLS 3
242 0183 0 0000 16 0000 RND
243 0184 0 0002 48 0010 SRS 10
244 0185 0 0001 48 0010 SRT 10
245 0186 0 0000 10 1827 CAD SCRATCHML
246 0187 0 0000 12 2441 ADD =1(31)=
247 0188 0 0000 37 0190 BZR 1F
248 0189 0 0000 13 2272 SUB =2(32)=
249 0190 0 3310 40 1828 1 STA SCRATCHDUMP/33
250 0191 0 0000 30 0134 BUN COMMENT
251
252
253 SETCORRECTIONS
254 0192 0 0000 41 0051 LDR 20B
255 0193 0 1111 40 0195 STR 1F/11
256 0194 0 1111 40 0219 STR 2F/11
257 0195 0 0011 60 1539 1 CNCL CDR+12,0
258 0196 0 0000 10 1527 CAD CDR
259 0197 0 0002 33 0134 BSA COMMENT,2
260 0198 0 0001 45 0000 CLA CREATE CHECK SUM TOTAL
261 0199 0 0000 42 2442 LDB =6=
262 0200 1 0000 12 1533 12 -ADD CDR+6
263 0201 0 0001 21 0200 DBB 12B,1
264 0202 0 0000 36 0206 BZA $+4
265 0203 0 0060 09 2434 SPO R-ERRONEOUS CORRECTION CARD-
266 0204 0 9669 00 9669 HLT 9669,9669(44)
267 0205 0 0000 30 0204 BUN $-1
268
269 0206 0 0000 10 1536 CAD CDR+9
270 0207 0 0000 42 0223 LDB K
271 0208 0 0402 26 0386 IFL KP/04,2
272 0209 1 0000 40 2449 -STA TBL+1
273 0210 0 0000 10 1535 CAD CDR+8
274 0211 0 0000 12 1534 ADD CDR+7
275 0212 0 0000 41 1532 LDR CDR+5
276 0213 0 0100 37 0217 BFR 3F/01,0
277 0214 0 0102 37 0221 BFR 4F/01,2
278 0215 0 0103 37 1533 BFR CDR+6/01,3
279 0216 0 0001 43 0000 LSA 1
280 0217 1 0000 40 2448 3 -STA TBL
281 0218 0 0002 26 0223 IFL K/00,2
282 0219 0 0010 60 1539 2 CNC CDR+12,0
283 0220 0 0000 30 0195 BUN 1B
284 0221 0 0003 43 0000 4 LSA 3
285 0222 0 0000 30 0217 BUN 3B
286 0223 0 0000 00 0014 K (14)
287 0224 0 0000 00 0000 MAMAXP (0)
288
289
290 0225 0 0000 44 0350 SETSIZE DO BASICNUMSCAN
0226 0 0000 30 0337
291 0227 0 0200 36 0231 BFA 1F/02,00
292 SPO R-MEMORY SIZE MUST BE GIVEN AS A MULTIPLE- ...
293 0228 0 0120 09 2422 - OF ONE HUNDRED-RRRI
294 0229 0 1370 00 7310 HLT 7310,1370(44)
295 0230 0 0000 30 0229 BUN $-1
296 0231 0 0000 12 2443 1 ADD =9999=

View File

@ -0,0 +1,29 @@
.00.0 0100 ATAN DEFN 100
.00.0 0200 ROMXX DEFN 200
.00.0 0300 ERROR DEFN 300
.00.0 0000 ACOS NOP
.00.0 0001 STA 6 ERROR+52
.00.0 0002 LDB 8 ACOS
.00.0 0003 BZA 6 ROMXX+39
.00.0 0004 LDR 8 ACOS2
.00.0 0005 STP 6 ROMXX
.00.0 0006 BUN 6 ROMXX+4
.00.0 0007 FDV 6 ERROR+52
.00.0 0008 STP 6 ATAN
.00.0 0009 BUN 6 ATAN
.00.0 0010 LDB 8 ACOS
.00.0 0011 LDR 6 ERROR+52
.00.0 0012 SLT 0
.00.0 0013 BPA - 0
.00.0 0014 FAD 8 +5131415927
.00.0 0015 BUN - 0
.00.0 0016 ACOS2 HLT 8 ACOS1
.00.0 0017 ACOS1 CNST $ACOS$
.00.0 0018 X CNST 0
.00.0 0019 LOCN LOCN *+1
.00.0 0020 CNST 40000990000
.00.0 0021 CNST $ARCCOS,REAL(REAL) ARCTAN=1 ROMXX=2 ERROR=3 $
.00.0 0030 CNST 90000000000
.00.0 0031 LOCN LOCN
.00.0 0019 FINI ACOS
19 +5131415927

View File

@ -0,0 +1,20 @@
.00.0 0100 ATAN DEFN 100
.00.0 0200 ROMXX DEFN 200
.00.0 0300 ERROR DEFN 300
.00.0 0000 ASIN NOP
.00.0 0001 STA 6 ERROR+52
.00.0 0002 LDR 8 ASIN2
.00.0 0003 STP 6 ROMXX
.00.0 0004 BUN 6 ROMXX+4
.00.0 0005 LDB 8 ASIN
.00.0 0006 BZA 6 ROMXX+39
.00.0 0007 STA 6 ERROR+49 B
.00.0 0008 CAD 6 ERROR+52
.00.0 0009 FDV 6 ERROR+49 B
.00.0 0010 BUN 6 ATAN+2
.00.0 0011 ASIN2 HLT 8 ASIN1
.00.0 0012 ASIN1 CNST $ASIN$
.00.0 0013 CNST 40000990000
.00.0 0014 CNST $ARCSIN,REAL(REAL) ARCTAN=1 ROMXX=2 ERROR=3 $
.00.0 0023 CNST 90000000000
.00.0 0024 FINI ASIN

View File

@ -0,0 +1,72 @@
.00.0 0100 ERROR DEFN 100
.00.0 0000 ATAN CRB
.00.0 0001 LDB 8 ATAN
.00.0 0002 CFA 6 ERROR+51,00 =1.0=
.00.0 0003 STA 6 ERROR+52
.00.0 0004 STB 8 C+,44
.00.0 0005 BCL 8 B+
.00.0 0006 DFL 8 C+,44,1
.00.0 0007 F4248 5010,10,+5099999999
.00.0 0008 FDV 6 ERROR+52
.00.0 0009 *B CFA 8 *-2,00
.00.0 0010 BCL 8 A+
.00.0 0011 SLA 2
.00.0 0012 STA 6 ERROR+52
.00.0 0013 MUL 6 ERROR+52
.00.0 0014 STA 6 ERROR+49 B
.00.0 0015 MUL 8 +0049017591 A1
.00.0 0016 ADD 8 +0565030980 A2
.00.0 0017 MUL 6 ERROR+49 B
.00.0 0018 ADD 8 +1453567135 A3
.00.0 0019 MUL 6 ERROR+49 B
.00.0 0020 ADD 8 +1000000000 A4
.00.0 0021 STA 6 ERROR+50 C Z
.00.0 0022 CAD 8 +0008561189 B1
.00.0 0023 MUL 6 ERROR+49 B
.00.0 0024 ADD 8 +0280504541 B2
.00.0 0025 MUL 6 ERROR+49 B
.00.0 0026 ADD 8 +1120234014 B3
.00.0 0027 MUL 6 ERROR+49 B
.00.0 0028 ADD 8 +1000000000 B4
.00.0 0029 MUL 6 ERROR+52
.00.0 0030 SRT 2
.00.0 0031 DIV 6 ERROR+50 C
.00.0 0032 STA 6 ERROR+50 C
.00.0 0033 IFL 6 ERROR+50,11,5
.00.0 0034 CAD 6 ERROR+50 C
.00.0 0035 *C IBB - 0,0
.00.0 0036 CAD 8 +5115707963 PI/2
.00.0 0037 LDR 6 ERROR+52
.00.0 0038 SLT 0
.00.0 0039 FSU 6 ERROR+50 C
.00.0 0040 BUN - 1
.00.0 0041 *A STA 6 ERROR+52
.00.0 0042 FMU 6 ERROR+52
.00.0 0043 STA 6 ERROR+49 B
.00.0 0044 FMU 8 -5014281428 C1
.00.0 0045 FAD 8 +5020000000 C2
.00.0 0046 FMU 6 ERROR+49 B
.00.0 0047 FSU 8 +5033333333 C3=-1/3
.00.0 0048 FMU 6 ERROR+49 B
.00.0 0049 FMU 6 ERROR+52
.00.0 0050 FAD 6 ERROR+52
.00.0 0051 STA 6 ERROR+50 C
.00.0 0052 BUN 8 C-
.00.0 0053 LOCN LOCN *+12
.00.0 0065 CNST 40000990000
.00.0 0066 CNST $ARCTAN,REAL(REAL) ERROR=1 $
.00.0 0072 CNST 90000000000
.00.0 0073 LOCN LOCN
.00.0 0053 FINI ATAN
53 +1000000000
54 +5099999999
55 +5033333333
56 +5020000000
57 +0280504541
58 -5014281428
059 +1453567135
60 +0049017591
61 +0008561189
62 +1120234014
63 +0565030980
64 +5115707963

View File

@ -0,0 +1,17 @@
.00.0 0100 SIN DEFN 100
.00.0 0000 COS CRB
.00.0 0001 LDR 8 COS
.00.0 0002 STR 8 SIN,04
.00.0 0003 LDR 8 COS2
.00.0 0004 FAD 8 +5078539816
.00.0 0005 FAD 8 +5078539816
.00.0 0006 BUN 6 SIN+2
.00.0 0007 COS2 HLT 8 COS1
.00.0 0008 COS1 CNST $COS$
.00.0 0009 LOCN LOCN *+1
.00.0 0010 CNST 40000990000
.00.0 0011 CNST $COS,REAL(REAL) SIN=1 $
.00.0 0016 CNST 90000000000
.00.0 0017 LOCN LOCN
.00.0 0009 FINI COS
9 +5078539816

View File

@ -0,0 +1,25 @@
.00.0 0100 EXP DEFN 100
.00.0 0200 ERROR DEFN 200
.00.0 0000 COSH NOP
.00.0 0001 LDR 8 COSH2
.00.0 0002 LSA 0
.00.0 0003 STP 6 EXP
.00.0 0004 BUN 6 EXP+2
.00.0 0005 BZA 8 A+
.00.0 0006 STA 6 ERROR+52
.00.0 0007 CAD 6 ERROR+51 =1.0=
.00.0 0008 FDB 6 ERROR+52
.00.0 0009 FAD 6 ERROR+52
.00.0 0010 FMU 8 +5050000000
.00.0 0011 *A LDB 8 COSH
.00.0 0012 BUN - 0
.00.0 0013 COSH2 HLT 8 COSH1
.00.0 0014 COSH1 CNST $COSH$
.00.0 0015 LOCN LOCN *+1
.00.0 0016 CNST 40000990000
.00.0 0017 CMST $COSH,REAL(REAL) EXP=1 ERROR=2 $
.00.0 0023 CNST 90000000000
.00.0 0024 LOCN LOCN
.00.0 0015 FINI COSH
15 +5050000000

View File

@ -0,0 +1,20 @@
.00.0 0000 ENTIR CRB
.00.0 0001 CFA 8 +5810000000,22
.00.0 0002 BCH 8 A+
.00.0 0003 SRT 0
.00.0 0004 BPA 8 B+
.00.0 0005 LSA 0
.00.0 0006 FAD 8 +5099999999
.00.0 0007 *B FAD 8 *5810000000
.00.0 0008 FSU 8 +5810000000
.00.0 0009 SLT 0
.00.0 0010 *A LDB 8 ENTIR
.00.0 0011 BUN - 0
.00.0 0012 LOCN LOCN *+2
.00.0 0014 CNST 40000990000
.00.0 0015 CNST $ENTIRE,REAL(REAL) $
.00.0 0019 CNST 90000000000
.00.0 0020 LOCN LOCN
.00.0 0012 FINI ENTIR
12 +5099999999
13 +5810000000

View File

@ -0,0 +1,64 @@
.00.0 THE LABEL PROCESSING SUBROUTINE
.00.0 0100 ERROR DEFN 100
.00.0 0000 LABEL BCS *,8
.00.0 0001 LDB 8 NUMLB
.00.0 0002 BOF 6 ERROR+21
.00.0 0003 LDB 8 LABEL
.00.0 0004 DLB - 9998,44,1
.00.0 0005 STB 8 HOLD
.00.0 0006 LDB 8 LABEL
.00.0 0007 DLB - 9999,44,0
.00.0 0008 STA 8 HOLD1
.00.0 0009 CAD - 0
.00.0 0010 STA 6 ERROR+49 B
.00.0 0011 SRT 10
.00.0 0012 STP 8 NUMLX
.00.0 0013 BSA 8 NUMLB,1
.00.0 0014 STA 6 ERROR+44
.00.0 0015 STR 6 ERROR+45
.00.0 0016 CAA 8 HOLD
.00.0 0017 SUB 8 +10000
.00.0 0018 SRT 10
.00.0 0019 STP 8 NUMLX
.00.0 0020 BUN 8 NUMLB
.00.0 0021 STR 6 ERROR+46,08
.00.0 0022 *I BUN 8 *+1
.00.0 0023 IFL 6 ERROR+46,22,24
.00.0 0024 IFL 6 ERROR+47,22,04
.00.0 0025 IFL 8 I-,04,3
.00.0 0026 BCS 8 PRINT,7
.00.0 0027 EXIT LDB 8 LABEL
.00.0 0028 CAD 8 HOLD1
.00.0 0029 BUN - 0
.00.0
.00.0 0030 PRINT LDB 8 *+2
.00.0 0031 RTF 6 ERROR+24,1 ZERO
.00.0 0032 RTF 6 ERROR+37,5
.00.0 0033 STP 6 ERROR+36
.00.0 0034 BUN 6 ERROR+34
.00.0 0035 BUN 8 EXIT
.00.0
.00.0
.00.0 0036 NUMLB F4248 8001,45,LABEL+3
.00.0 0037 SLA 1
.00.0 0038 SLT 1
.00.0 0039 SUB 8 +80
.00.0 0040 IFL 8 NUMLB,11,8
.00.0 0041 BOF 8 NUMLB+1
.00.0 0042 IFL 8 *-1,11,5
.00.0 0043 BOF 8 A+
.00.0 0044 STA 6 ERROR+50 C
.00.0 0045 BUN 8 NUMLB
.00.0 0046 *A SRT 10
.00.0 0047 CAD 6 ERROR+50 C
.00.0 0048 NUMLX BUN *
.00.0 0049 LOCN LOCN *+4
.00.0 0053 CNST 40000990000
.00.0 0054 CNST $LABEL ERROR=1 $
.00.0 0057 CNST 90000000000
.00.0 0058 LOCN LOCN
.00.0 0049 FINI LABEL
49 HOLD1
50 HOLD
51 +0000010000
52 +0000000080

View File

@ -0,0 +1,64 @@
.00.0 THE MONITOR SUBROUTINE
.00.0 0100 ERROR DEFN 100
.00.0 0000 MONTR BCS *,10
.00.0 0001 STB 6 ERROR+49 B
.00.0 0002 LDB 8 E+
.00.0 0003 BOF 6 ERROR+21
.00.0 0004 STA 6 ERROR+52
.00.0 0005 LDB 8 MONTR
.00.0 0006 DLB - 9999,44,0
.00.0 0007 LDR - 0
.00.0 0008 STR 8 OUT
.00.0 0009 LDB 8 MONTR
.00.0 0010 CLL 8 OUT+3
.00.0 0011 CLL 8 OUT+4
.00.0 0012 STB 8 OUT+1,64
.00.0 0013 CAD - 9997
.00.0 0014 BPA 8 *+2
.00.0 0015 SUB 6 ERROR+49 B
.00.0 0016 STA 8 B+,04
.00.0 0017 *E CLA 8 MONTR+4
.00.0 0018 LDR - 9998
.00.0 0019 BFR 8 *+3,11,8
.00.0 0020 *B ADD *
.00.0 0021 BUN 8 *+2
.00.0 0022 ADD 6 ERROR+52
.00.0 0023 BFR 8 A+,21,0
.00.0 0024 STA 8 OUT+2
.00.0 0025 BPA 8 C+
.00.0 0026 IFL8 OUT+1,42,20
.00.0 0027 *C STB 8 F+,04
.00.0 0028 F4246 0504,44,0200
.00.0 0029 F4246 OUT,30,0200
.00.0 0030 *D CAD 6 ERROR+52
.00.0 0031 LDB 6 ERROR+49 B
.00.0 0032 *F BUN *
.00.0 0033 BUN *
.00.0 0034 *A SRT B
.00.0 0035 CLL 8 OUT+2
.00.0 0036 STR 8 OUT+2,88
.00.0 0037 BSA 8 *+2,0
.00.0 0038 IFL 8 OUT+1,42,20
.00.0 0039 LSA 0
.00.0 0040 BFR 8 *+2,88,0
.00.0 0041 SUB 8 +50
.00.0 0042 IFL 8 OUT+3,02,23
.00.0 0043 IFL 8 OUT+1,62,03
.00.0 0044 STA 8 OUT+4,01
.00.0 0045 SLA 1
.00.0 0046 STA 8 OUT+4,89
.00.0 0047 IFL 8 OUT+4,91,8
.00.0 0048 IFL 8 OUT+4,71,8
.00.0 0049 BUN 8 C-
.00.0 0050 OUT CNST 0
.00.0 0051 CNST $= $
.00.0 0052 CNST 0
.00.0 0053 CNST 0
.00.0 0054 CNST 0
.00.0 0055 LOCN LOCN *+1
.00.0 0056 CNST 40000990000
.00.0 0057 CNST $MONIT ERROR=1 RITE=2 $
.00.0 0062 CNST 90000000000
.00.0 0063 LOCN LOCN
.00.0 0055 FINI MONTR
55 +0000000050

View File

@ -0,0 +1,8 @@
,00,0 READ DEFN 100
.00.0 0000 REED NOP
.00.0 0001 CRD 0117,1
.00.0 0002 BUN 6 0111
.00.0 0003 CNST 40000990000
.00.0 0004 CNST $REED READ=1 $
.00.0 0007 CNST 90000000000
.00.0 0008 FINI READ

View File

@ -0,0 +1,19 @@
.00.0 0000 RITE NOP
.00.0 0001 LDB 8 *-1
.00.0 0002 CAD - 9999
.00.0 0003 SRA 6
.00.0 0004 STA 8 A+,04
.00.0 0005 CAD - 9998
.00.0 0006 STA 8 A+,42
.00.0 0007 SRA 8
.00.0 0008 SUB 8 +1
.00.0 0009 ADL 8 A+
.00.0 0010 *A CWR 0,02,0
.00.0 0011 BUN - 0
.00.0 0012 LOCN LOCN *+1
.00.0 0013 CNST 40000990000
.00.0 0014 CNST $RITE $
.00.0 0015 CNST 90000000000
.00.0 0016 LOCN LOCN
.00.0 0012 FINI RITE
12 +0000000001

View File

@ -0,0 +1,55 @@
.00.0 0100 ERROR DEFN 100
.00.0 0200 SQRT DEFN 200
.00.0 0000 ROMXX F4247 3,1,0
.00.0 0001 DLB 8 *-1,44,0
.00.0 0002 BOF 6 ERROR+21
.00.0 0003 LDR 8 ROM2
.00.0 0004 STR 8 B+,04
.00.0 0005 CFA 6 ERROR+51,00 =1.0=
.00.0 0006 BCH 8 B+
.00.0 0007 BFA 8 E+,22,51
.00.0 0008 BZA 8 F+
.00.0 0009 STA 6 ERROR+52
.00.0 0010 FMU 6 ERROR+52
.00.0 0011 SLT 2
.00.0 0012 STR 8 E+,02
.00.0 0013 LBC B E+
.00.0 0014 SRT - 51
.00.0 0015 SUB 8 +10000000000
.00.0 0016 SLT 10
.00.0 0017 SUB 6 ERROR+48 =5(11)=
.00.0 0018 SUB 6 ERROR+48
.00.0 0019 SLT 10
.00.0 0020 BOF 8 *+2
.00.0 0021 F4248 51,12,+1
.00.0 0022 DLB 8 *-1,44,0
.00.0 0023 *D BFA 8 C+,11,0
.00.0 0024 STB 8 E+,04
.00.0 0025 LDR 8 E+
.00.0 0026 SLT 18
.00.0 0027 *G LDB 8 ROMXX
.00.0 0028 BUN 6 SQRT+2
.00.0 0029 *C SLT 1
.00.0 0030 DBB 8 D-,1
.00.0 0031 *E LSA 1
.00.0 0032 *F FAD 6 ERROR+51 =1.0=
.00.0 0033 BUN 8 G-
.00.0 0034 *B LDR 8 ROM1
.00.0 0035 LDB 8 ROMXX
.00.0 0036 BUN 6 ERROR+7
.00.0 0037 ROM1 CNST $ROMXX$
.00.0 0038 ROM2 HLT 8 ROM1
.00.0 0039 ROM3 CAD 8 +5115707963
.00.0 0040 LDR 6 ERROR+52
.00.0 0041 BZR - 0
.00.0 0042 SLT 0
.00.0 0043 BUN - 0
.00.0 0044 LOCN LOCN *+3
.00.0 0047 CNST 40000990000
.00.0 0048 CNST $ROMXX,REAL(REAL) ERROR=1 SQRT=2 $
.00.0 0055 CNST 90000000000
.00.0 0056 LOCN LOCN
.00.0 0044 FINI ROMXX
44 +1000000000
45 +0000000001
46 +5115707963

View File

@ -0,0 +1,41 @@
.00.0 0100 EXP DEFN 100
.00.0 0200 ERROR DEFN 200
.00.0 0000 SINH CLR
.00.0 0001 CFA 6 EXP+71,00
.00.0 0002 BCH 8 C+
.00.0 0003 CFA 8 +5050000000,00
.00.0 0004 BCL 8 A+
.00.0 0005 STP 6 EXP
.00.0 0006 BUN 6 EXP+2
.00.0 0007 STA 6 ERROR+52
.00.0 0008 CSU 6 ERROR+51 =1.0=
.00.0 0009 FDV 6 ERROR+52
.00.0 0010 FAD 6 ERROR+52
.00.0 0011 FMU 8 +5050000000
.00.0 0012 *B LDB 8 SINH
.00.0 0013 BUN - 0
.00.0 0014 *A STA 6 ERROR+52
.00.0 0015 FMU 6 ERROR+52
.00.0 0016 STA 6 ERROR+49 B
.00.0 0017 FMU 8 +4719841270
.00.0 0018 FAD 8 +4883333333
.00.0 0019 FMU 6 ERROR+49 B
.00.0 0020 FAD 8 +5016666667
.00.0 0021 FMU 6 ERROR+49 B
.00.0 0022 FMU 6 ERROR+12
.00.0 0023 FAD 6 ERROR+52
.00.0 0024 BUN 8 B-
.00.0 0025 *C LDB 8 SINH
.00.0 0026 LDR 8 $SINH$
.00.0 0027 BUN 6 ERROR
.00.0 0028 LOCN LOCN *+5
.00.0 0033 CNST 40000990000
.00.0 0034 CNST $SINH,REAL(REAL) EXP=1 ERROR=2 $
.00.0 0040 CNST 90000000000
.00.0 0041 LOCN LOCN
.00.0 0028 FINI SINH
28 $SINH
29 +4719841270
30 +4883333333
31 +5050000000
032 +5016666667

View File

@ -0,0 +1,30 @@
.00.0 0100 SIN DEFN 100
.00.0 0200 COS DEFN 200
.00.0 0300 ERROR DEFN 300
.00.0 0000 TAN CRB
.00.0 0001 STA 8 X
.00.0 0002 LDR 8 TAN2
.00.0 0003 STP 6 SIN
.00.0 0004 BUN 6 COS+4
.00.0 0005 BZA 8 A+
.00.0 0006 STA 8 COSX
.00.0 0007 CAD 8 X
.00.0 0008 STP 6 SIN
.00.0 0009 BUN 6 SIN
.00.0 0010 FDV 6 COSX
.00.0 0011 LDB 8 TAN
.00.0 0012 BUN - 0
.00.0 0013 *A LDR 8 X
.00.0 0014 CFR 8 *+1,22
.00.0 0015 F424- 5700,34,0
.00.0 0016 LDB 8 TAN
.00.0 0017 LDR 8 TAN1
.00.0 0018 BUN 6 ERROR+7
.00.0 0019 X CNST 0
.00.0 0020 COSX CNST 0
.00.0 0021 TAN1 CNST $TAN$
.00.0 0022 TAN2 HLT TAN1
.00.0 0023 CNST 40000990000
.00.0 0024 CNST $TAN,REAL(REAL) SIN=1 COS=2 ERROR=3 $
.00.0 0031 CNST 90000000000
.00.0 0032 FINI TAN

View File

@ -0,0 +1,33 @@
.00.0 0100 SINH DEFN 100
,00,0 0200 COSH DEFN 200
.00.0 0300 ERROR DEFN 300
.00.0 0000 TANH NOP
.00.0 0001 STA 8 X
.00.0 0002 LDR 8 TANH2
.00.0 0003 CFA 8 +5250000000,00
.00.0 0004 BCH 8 B+
.00.0 0005 STP 6 COSH
.00.0 0006 BUN 6 COSH+2
.00.0 0007 STA 8 COSHX
.00.0 0008 BZA 8 A+
.00.0 0009 CAD 8 X
.00.0 0010 STP 6 SINH
.00.0 0011 BUN 6 SINH
.00.0 0012 FDV 8 COSHX
.00.0 0013 *A LDB 8 TANH
.00.0 0014 BUN - 0
.00.0 0015 *B CAD 6 ERROR+51 =1.0=
.00.0 0016 LDR 8 X
.00.0 0017 SLT 0
.00.0 0018 BUN 8 A-
.00.0 0019 X CNST 0
.00.0 0020 COSHX CNST 0
.00.0 0021 TANH2 HLT 8 TANH1
.00.0 0022 TAHN1 CNST $TANH$
.00.0 0023 LOCN LOCN *+1
.00.0 0024 CNST 40000990000
.00.0 0025 CNST $TANH,REAL(REAL) SINH=1 COSH=2 ERROR=3 $
.00.0 0033 CNST 90000000000
.00.0 0034 LOCN LOCN
.00.0 0023 FINI TANH
23 +5250000000

View File

@ -0,0 +1,29 @@
.00.0 0100 ERROR DEFN 100
.00.0 0000 TRACE BCS *,9
.00.0 0001 DLB 8 Y+,44,0
.00.0 0002 HOLD BOF 6 ERROR+21
.00.0 0003 TR1 LDB 8 TRACE
.00.0 0004 STA 8 HOLD0
.00.0 0005 CAD - 9999
.00.0 0006 STA 8 HOLD,44
.00.0 0007 BFA 8 Y+,44,0
.00.0 0008 *A CAD - 0
.00.0 0009 CFA 8 TR1,04
.00.0 0010 BCU 8 *+2
.00.0 0011 IBB 8 A-,2
.00.0 0012 ADA 8 HOLD
.00.0 0013 ADD 8 +9999000000
.00.0 0014 BOF 8 *+1
.00.0 0015 *Y F4247 3,44,0
.00.0 0016 BFA 2,44,0
.00.0 0017 *Z LDB 8 TRACE
.00.0 0018 CAD 8 HOLD0
.00.0 0019 BUN - 0
.00.0 0020 HOLD0 CNST 0
.00.0 0021 LOCN LOCN *+1
.00.0 0022 CNST 40000990000
.00.0 0023 CNST $TRACE ERROR=1 $
.00.0 0026 CNST 90000000000
.00.0 0027 LOCN LOCN
.00.0 0021 FINI TRACE
21 +9999000000

Binary file not shown.

View File

@ -7,6 +7,17 @@ Unless otherwise specified, all files are in standard Windows text
format, with carriage-return/line-feed delimiters.
[WORK IN PROGRESS]
BALGOL-Generator.bacg
Assembly listing of the BALGOL comiler-generator program,
transcribed by Paul Kimpel from
http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/
PDF_index/k-1-pdf/k-1-u2196-balgol220compiler.pdf.
This program is written using a different assembly language than the
other BALGOL components below.
BALGOL-Main.baca
Assembly listing of the BALGOL compiler main-line module,
transcribed by Paul Kimpel from
@ -29,11 +40,13 @@ BALGOL-Overlay.card
Card-image input deck of BALGOL-Overlay.baca prepared for input to
the tools/BAC-Assembler script.
BALGOL-FLOAT.baca, BALGOL-FLOAT.card
Assembly listing and input card deck for the BALGOL FLOAT intrinsic
function.
[work in progress]
BALGOL-Intrinsics/
Assembly listings (.baca) and input card decks (.card) for the
BALGOL intrinsic function library, transcribed by Paul Kimpel from
http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/
PDF_index/k-1-pdf/k-1-u2196-balgol220compiler.pdf.
These transcriptions reflect some notations and corrections hand-
coded on the listings.
Paul Kimpel
January 2017

View File

@ -126,6 +126,7 @@ window.addEventListener("load", function() {
var eolRex = /([^\n\r\f]*)((:?\r[\n\f]?)|\n|\f)?/g;
var panel = $$("TextPanel");
var rTrimRex = /\s*$/;
var sprintLimit = 100; // cards processed before yielding control
// Input field 0-relative column locations
@ -162,6 +163,7 @@ window.addEventListener("load", function() {
newOffset: -1};
// Assembly storage
var autoSymTab = {}; // auto-declared (undefined) symbol table
var errorCount = 0; // assembler error count
var errorTank = []; // holding area for errors on current line
var location = 0; // current instruction address
@ -418,6 +420,20 @@ window.addEventListener("load", function() {
return result;
}
/**************************************/
function rTrim(s) {
/* Returns the string "s" stripped of any trailing whitespace */
var x = s.search(rTrimRex);
if (x < 0 ) {
return s;
} else if (x < 1) {
return "";
} else {
return s.substring(0, x);
}
}
/**************************************/
function clearPanel() {
/* Clears the text panel */
@ -1644,6 +1660,7 @@ window.addEventListener("load", function() {
location = 0;
cardData.atEOF = false;
cardData.serial = 0;
autoSymTab = {};
pointTab = {};
poolTab = {};
symTab = {};
@ -1692,7 +1709,7 @@ window.addEventListener("load", function() {
text = padLeft(seq, 8, " ") + " " + padLeft(location, 4, "0") + " ";
}
text += padRight(label, 6) + padRight(opCode || " ", 4) + padRight(sign, 2, " ") + operand;
text += padRight(label, 6) + padRight(opCode || " ", 4) + padRight(sign, 2, " ") + rTrim(operand);
printLine(text);
if (errorTank.length > 0) {
dumpErrorTank();
@ -1850,6 +1867,7 @@ window.addEventListener("load", function() {
if (cardData.atEOF) {
done = true;
if (!finito) {
finito = true;
printError("EOF encountered before FINI in Pass 1");
}
} else if (++sprintCount > sprintLimit && !continuedString) {
@ -1860,15 +1878,20 @@ window.addEventListener("load", function() {
if (!finito) {
setTimeout(assemblePass1, 100);
} else {
buildPoolPass1();
// Wrap up Pass 1, check for undefined symbols
for (text in symTab) {
if (symTab[text] < 0) {
printError("SYMBOL NOT DEFINED: " + text);
// Wrap up Pass 1 and check for undefined symbols.
// Oddly, undefined symbols appear to have been implicitly defined at the end,
// so build a table of them and assign locations.
for (label in symTab) {
if (symTab[label] < 0) {
autoSymTab[label] = location;
symTab[label] = location;
printPass1("", location, label, "", "", "");
++location;
}
}
buildPoolPass1();
dumpErrorTank();
printLine("END OF PASS 1, ERRORS = " + errorCount);
dumpSymbolTable();
@ -1958,7 +1981,7 @@ window.addEventListener("load", function() {
" " + padLeft(location, 4, "0") + wordText + " ";
}
text += padRight(label, 6) + padRight(opCode || " ", 4) + padRight(sign, 2, " ") + operand;
text += padRight(label, 6) + padRight(opCode || " ", 4) + padRight(sign, 2, " ") + rTrim(operand);
printLine(text);
if (errorTank.length > 0) {
dumpErrorTank();
@ -2161,6 +2184,7 @@ window.addEventListener("load", function() {
if (cardData.atEOF) {
done = true;
if (!finito) {
finito = true;
printError("EOF encountered before FINI in Pass 2");
}
} else if (++sprintCount > sprintLimit && !continuedString) {
@ -2171,6 +2195,11 @@ window.addEventListener("load", function() {
if (!finito) {
setTimeout(assemblePass2, 100);
} else {
// dump the auto-defined symbols
for (label in autoSymTab) {
printPass2("", null, autoSymTab[label], 0, label, "", "", "");
}
buildPoolPass2();
// Wrap up Pass 2, check again for undefined symbols (shouldn't be any)

View File

@ -44,18 +44,18 @@ Dim fso
Dim lastSeq
'---------------------------------------
Function PadLeft(ByVal s, ByVal chars)
Function PicZn(ByVal s, ByVal chars)
'Formats the string "s" to be exactly "chars" characters long, padding
'with spaces or truncating on the left, as necessary.
Dim sLen
sLen = Len(s)
If sLen < chars Then
PadLeft = Space(chars - sLen) & s
PicZn = Space(chars - sLen) & s
ElseIf sLen > chars Then
PadLeft = Right(s, chars)
PicZn = Right(s, chars)
Else
PadLeft = s
PicZn = s
End If
End Function
@ -98,10 +98,10 @@ Sub WriteCard(cardFile, seq, text)
Dim seqNr
Dim seqText
seqText = PadLeft(seq, 8)
seqText = PicZn(seq, 8)
image = PicXn(text, 72)
If Len(Trim(seqText)) = 0 Then
seqText = Replace(lastSeq, " ", "")
seqText = Replace(Replace(lastSeq, " ", ""), ".", "")
If IsNumeric(seqText) Then
seqNr = CLng(seqText)
Else
@ -109,7 +109,7 @@ Sub WriteCard(cardFile, seq, text)
End If
seqNr = seqNr + 10
seqText = PadLeft("0" & seqNr, 6)
seqText = PicZn("0" & seqNr, 6)
seqText = Mid(seqText, 1, 3) & " " & Mid(seqText, 4, 2) & " " & Mid(seqText, 6)
End If
@ -122,12 +122,15 @@ Sub ExtractCode(byVal xScriptName, byVal deckName)
'Extracts source from an assembler transcription file.
'The assembler source is written as card images to a file with the same
'name as the transcription file, but modified with a ".card" extension.
Dim addr
Dim address
Dim card
Dim cardFile
Dim label
Dim lastAddr
Dim line
Dim lineNr
Dim operand
Dim opCode
Dim seq
Dim text
Dim word
@ -137,28 +140,41 @@ Sub ExtractCode(byVal xScriptName, byVal deckName)
Const labelCol = 21
Const opCodeCol = 27
Const operandCol = 33
Const lastCol = 90
Set xFile = fso.OpenTextfile(xScriptName, ForReading, False, False)
lineNr = 1
Set cardFile = fso.OpenTextFile(deckName, ForWriting, True, True)
line = xFile.ReadLine
If Mid(line, addrCol, 2) = " " Then
text = Mid(line, addrCol+2, opCodeCol-addrCol-2)
If Len(Trim(text)) > 0 Then
'-- assume it's a heading line and convert to a REM card
WriteCard cardFile, Mid(line, 1, 8), "1" & Space(9) & "REM " & Mid(line, addrCol+2, lastCol-addrCol+2)
line = xFile.ReadLine
End If
End If
Do While Not xFile.AtEndOfStream
line = xFile.ReadLine
lineNr = lineNr+1
seq = RTrim(Mid(line, 1, 8))
address = RTrim(Mid(line, addrCol, 4))
label = RTrim(Mid(line, labelCol, 5))
opCode = RTrim(Mid(line, opCodeCol, 5))
operand = RTrim(Mid(line, operandCol, lastCol-operandCol))
seq = LTrim(Mid(line, 1, 8))
'-- If the sequence and opCode fields are blank, and address field is not present, generate a REM card
'-- If the sequence field is blank, and the address field IS present, do not generate a card
If Len(seq) = 0 And Len(RTrim(Mid(line, opCodeCol, 5))) = 0 And Len(RTrim(Mid(line, addrCol, 4))) = 0 Then
WriteCard cardFile, seq, "1" & Space(9) & "REM " & Mid(line, operandCol)
ElseIf Len(seq) > 0 Or Len(RTrim(Mid(line, addrCol, 4))) = 0 Then
'-- If the address and opCode fields are blank, generate a REM card
'-- If the sequence field is blank, and the address field is not, do not generate a card
If Len(opCode) = 0 And Len(address) = 0 Then
WriteCard cardFile, seq, "1" & Space(9) & "REM " & operand
ElseIf Len(seq) > 0 Or Len(address) = 0 Then
'-- Reformat and write the assembler card image
WriteCard cardFile, seq, "1" & Space(3) & _
PicXn(Mid(line, labelCol, 5), 6) & _
PicXn(Mid(line, opCodeCol, 5), 6) & _
Mid(line, operandCol)
PicXn(label, 6) & PicXn(opCode, 6) & operand
End If
line = xFile.ReadLine
Loop
cardFile.Close
@ -181,7 +197,7 @@ Else
If args.Count > 1 Then
lastSeq = Trim(args.Item(1))
Else
lastSeq = "01 0"
lastSeq = "09 0"
End If
End If

View File

@ -6,6 +6,9 @@ Unless otherwise specified, all files are in standard Windows text
format, with carriage-return/line-feed delimiters.
[WORK IN PROGRESS]
BAC-Assembler.html
HTML/Javascript assembler for the assembly language dialect used
with the BALGOL Main, Overlay, and intrinsic functions.