File: import.lst

package info (click to toggle)
xtrs 4.9c-4
  • links: PTS
  • area: contrib
  • in suites: stretch
  • size: 2,240 kB
  • ctags: 1,430
  • sloc: ansic: 19,941; makefile: 243; csh: 132; sh: 129
file content (478 lines) | stat: -rw-r--r-- 18,987 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
   1:			;; import.z
   2:			;; Timothy Mann, 8/24/97
   3:			;; $Date: 2006/05/15 00:49:19 $
   4:			;;
   5:			;;	Copyright (c) 1997, Timothy Mann
   6:			;;
   7:			;;	This software may be copied, modified, and used for any
   8:			;;	purpose without fee, provided that (1) the above copyright
   9:			;;	notice is retained, and (2) modified versions are clearly
  10:			;;	marked as having been modified, with the modifier's name and
  11:			;;	the date included.  
  12:			;;
  13:			;; Use xtrs emulator traps to copy a file from Unix to TRS-80
  14:			;; Usage: IMPORT [-lne] unixfile [tofile]
  15:			;; Parameter -l will convert the Unix file to lower case.
  16:			;;  (Needed for NEWDOS/80.  They insist on uppercasing the
  17:			;;  command line.)
  18:			;; If the -n parameter is given, each newline ('\n') in the Unix
  19:			;;  file is converted to a carriage return ('\r'), the TRS-80 end of
  20:			;;  line character.
  21:			;; The program tries to determine what DOS it is running on and use
  22:			;;  the correct FCB end of file convention, but this works only on
  23:			;;  TRSDOS, LDOS, and NEWDOS/80.  For other DOSes that use the
  24:			;;  NEWDOS/80 convention (such as DOSPLUS), give the -e paramter.
  25:			;; If the tofile parameter is omitted, the last component of the
  26:			;;  Unix pathname is used, with '.' changed to '/'.  If this is
  27:			;;  not a legal TRS-80 filename, you get an error message.
  28:			
  29:			;; Model I/III addresses
  30:	441C          	@fspec  equ 441ch
  31:	4420          	@init   equ 4420h
  32:	4424          	@open   equ 4424h
  33:	4428          	@close  equ 4428h
  34:	4436          	@read   equ 4436h
  35:	4439          	@write  equ 4439h
  36:	4409          	@error  equ 4409h
  37:	402D          	@exit   equ 402dh
  38:	4030          	@abort  equ 4030h       
  39:	001B          	@put	equ 001bh
  40:	401D          	dodcb$	equ 401dh
  41:			
  42:			;; Model 4 SVCs
  43:	0028          	@svc	equ 40  ; rst address for SVCs
  44:			;@svc	equ 5   ; older zmac requires 8080-style "rst 5"
  45:	004E          	@fspec6	equ 78
  46:	003A          	@init6	equ 58
  47:	003B          	@open6	equ 59
  48:	003C          	@close6	equ 60
  49:	0043          	@read6	equ 67
  50:	004B          	@write6	equ 75
  51:	001A          	@error6	equ 26
  52:	0016          	@exit6	equ 22
  53:	0015          	@abort6	equ 21
  54:	000A          	@dsply6	equ 10
  55:			
  56:			;; Model 4 only: file init or open with wrong LRL.  Can be ignored.
  57:	002A          	lrlerr  equ 42
  58:			
  59:	5200          		org 5200h
  60:			
  61:			;; Jump tables for OS independence
  62:	5200          	startj:
  63:	5200  CD1C44  	fspec:	call @fspec
  64:	5203  C9      		ret
  65:	5204  CD2044  	init:	call @init
  66:	5207  C9      		ret
  67:	5208  CD2444  	open:	call @open
  68:	520B  C9      		ret
  69:	520C  CD2844  	close:	call @close
  70:	520F  C9      		ret
  71:	5210  CD3644  	reed:	call @read
  72:	5213  C9      		ret
  73:	5214  CD3944  	write:	call @write
  74:	5217  C9      		ret
  75:	5218  CD0944  	error:	call @error
  76:	521B  C9      		ret
  77:	521C  CD2D40  	exit:	call @exit
  78:	521F  C9      		ret
  79:	5220  CD3040  	abort:	call @abort
  80:	5223  C9      		ret
  81:	5224  CDA953  	dsply:	call dsply5
  82:	5227  C9      		ret
  83:	5228  CDDB53  	setern:	call setern5
  84:	522B  C9      		ret
  85:	522C          	endj:
  86:			
  87:			; Model 4
  88:	522C          	startj6:
  89:	522C  3E4E    		ld a, @fspec6
  90:	522E  EF      		rst @svc
  91:	522F  C9      		ret
  92:	5230  3E3A    		ld a, @init6
  93:	5232  EF      		rst @svc
  94:	5233  C9      		ret
  95:	5234  3E3B    		ld a, @open6
  96:	5236  EF      		rst @svc
  97:	5237  C9      		ret
  98:	5238  3E3C    		ld a, @close6
  99:	523A  EF      		rst @svc
 100:	523B  C9      		ret
 101:	523C  3E43    		ld a, @read6
 102:	523E  EF      		rst @svc
 103:	523F  C9      		ret
 104:	5240  3E4B    		ld a, @write6
 105:	5242  EF      		rst @svc
 106:	5243  C9      		ret
 107:	5244  3E1A    		ld a, @error6
 108:	5246  EF      		rst @svc
 109:	5247  C9      		ret
 110:	5248  3E16    		ld a, @exit6
 111:	524A  EF      		rst @svc
 112:	524B  C9      		ret
 113:	524C  3E15    		ld a, @abort6
 114:	524E  EF      		rst @svc
 115:	524F  C9      		ret
 116:	5250  3E0A    		ld a, @dsply6
 117:	5252  EF      		rst @svc
 118:	5253  C9      		ret
 119:	5254  CDEC53  		call setern6
 120:	5257  C9      		ret
 121:			
 122:			; Nonzero for LDOS ern convention
 123:	5258  01      	ernldos: db 1
 124:			
 125:			; Emulator trap instructions, byte-reversed for use in defw:
 126:	30ED          	emt_open	equ 30edh
 127:	31ED          	emt_close	equ 31edh
 128:	32ED          	emt_read	equ 32edh
 129:	33ED          	emt_write	equ 33edh
 130:	34ED          	emt_lseek	equ 34edh
 131:	35ED          	emt_strerror	equ 35edh
 132:			
 133:	0003          	EO_ACCMODE  equ     3q
 134:	0000          	EO_RDONLY   equ     0q
 135:	0001          	EO_WRONLY   equ     1q
 136:	0002          	EO_RDWR     equ     2q
 137:	0040          	EO_CREAT    equ   100q
 138:	0080          	EO_EXCL     equ   200q
 139:	0200          	EO_TRUNC    equ  1000q
 140:	0400          	EO_APPEND   equ  2000q
 141:			
 142:	2000          	iobsize	equ 8192		; must be divisible by 256
 143:			
 144:	5259          	import: 
 145:	5259  3A0A00  		ld a, (000ah)		; Model 4?
 146:	525C  FE40    		cp 40h
 147:	525E  280D    		jr z, not4
 148:	5260  E5      		push hl
 149:	5261  110052  		ld de, startj
 150:	5264  212C52  		ld hl, startj6
 151:	5267  012C00  		ld bc, endj - startj
 152:	526A  EDB0    		ldir
 153:	526C  E1      		pop hl
 154:	526D          	not4:
 155:	526D  3A2744  		ld a, (4427h)		; system id for Newdos/80...
 156:	5270  D682    		sub 82h			; ...should be 82h (v2.0)
 157:	5272  2805    		jr z, gotid
 158:	5274  3A1F44  		ld a, (441fh)		; system version number for most other DOSes
 159:	5277  D613    		sub 13h			; TRSDOS 1.3?
 160:	5279  325852  	gotid:  ld (ernldos), a
 161:			
 162:	527C  7E      	flag0:	ld a, (hl)		; look for flags
 163:	527D  FE20    		cp ' '
 164:	527F  DA1453  		jp c, usage		; error if line ends here
 165:	5282  2003    		jr nz, flag1
 166:	5284  23      		inc hl
 167:	5285  18F5    		jr flag0
 168:	5287  FE2D    	flag1:	cp '-'
 169:	5289  202B    		jr nz, unix1
 170:	528B  23      		inc hl
 171:	528C  7E      		ld a, (hl)
 172:	528D  F620    	flag3:	or 20h
 173:	528F  FE65    		cp 'e'
 174:	5291  2006    		jr nz, flagl
 175:	5293  97      		sub a
 176:	5294  325852  		ld (ernldos), a
 177:	5297  1814    		jr flag2
 178:	5299  FE6C    	flagl:	cp 'l'
 179:	529B  2007    		jr nz, flagn		; check for next flag
 180:	529D  3E01    		ld a, 1
 181:	529F  32F353  		ld (lflag), a
 182:	52A2  1809    		jr flag2
 183:	52A4  FE6E    	flagn:	cp 'n'
 184:	52A6  206C    		jr nz, usage		; unknown flag
 185:	52A8  3E01    		ld a, 1
 186:	52AA  32F453  		ld (nflag), a
 187:	52AD  23      	flag2:	inc hl
 188:	52AE  7E      		ld a, (hl)
 189:	52AF  FE20    		cp ' '
 190:	52B1  20DA    		jr nz, flag3		; another flag follows
 191:	52B3  23      		inc hl
 192:	52B4  18C6    		jr flag0
 193:			
 194:	52B6  118C54  	unix1:	ld de, iobuf		; copy Unix filename
 195:	52B9  3E20    		ld a, ' '
 196:	52BB  BE      	unix2:	cp (hl)
 197:	52BC  EDA0    		ldi
 198:	52BE  38FB    		jr c, unix2
 199:	52C0  1B      		dec de			; NUL terminate Unix name
 200:	52C1  3E00    		ld a, 0
 201:	52C3  12      		ld (de), a              
 202:	52C4  2812    		jr z, trs80		; go if two names given
 203:			
 204:			;; Translate last component of Unix name to TRS-80 name			
 205:	52C6  2B      		dec hl			; back up to terminator
 206:	52C7  2B      	unix3:	dec hl			; back up to last byte of name
 207:	52C8  7E      		ld a, (hl)
 208:	52C9  FE2E    		cp '.'			; change '.' to '/'
 209:	52CB  2002    		jr nz, notdot
 210:	52CD  362F    		ld (hl), '/'
 211:	52CF  FE2F    	notdot:	cp '/'
 212:	52D1  2804    		jr z, unix4
 213:	52D3  FE20    		cp ' '
 214:	52D5  20F0    		jr nz, unix3
 215:	52D7  23      	unix4:	inc hl			; point to start of modified last component 
 216:			
 217:	52D8  115C54  	trs80:	ld de, dcb              ; ready to get TRS-80 filename from (HL)
 218:	52DB  CD0052  	        call fspec
 219:	52DE  2034    	        jr nz, usage
 220:	52E0  218C54  		ld hl, iobuf		; Unix path
 221:	52E3  3AF353  		ld a, (lflag)
 222:	52E6  B7      		or a
 223:	52E7  C4BE53  		call nz, lcconv		; convert path to lower case
 224:	52EA  010000  		ld bc, EO_RDONLY
 225:	52ED  110000  		ld de, 0		; mode (ignored)
 226:	52F0  ED30    		defw emt_open
 227:	52F2  2806    		jr z, openok		; go if OK
 228:	52F4  211C54  		ld hl, uopner		; error message and exit
 229:	52F7  C39653  		jp uerror
 230:			
 231:	52FA  D5      	openok:	push de			; save fd
 232:	52FB  218C54  	        ld hl, iobuf
 233:	52FE  115C54  	        ld de, dcb
 234:	5301  0600    	        ld b, 0
 235:	5303  CD0452  	        call init               ; open the file
 236:	5306  D1      		pop de
 237:	5307  2814    		jr z, opn2ok
 238:	5309  FE2A    		cp lrlerr
 239:	530B  2810    		jr z, opn2ok
 240:	530D  4F      		ld c, a
 241:	530E  CD1852  	        call error
 242:	5311  C32052  	        jp abort
 243:	5314  21F553  	usage:  ld hl, usager           ; error message and exit
 244:	5317  CD2452  	        call dsply
 245:	531A  C32052  	        jp abort
 246:			
 247:			;; Read
 248:	531D          	rloop:
 249:	531D  218C54  	opn2ok:	ld hl, iobuf            ; read a buffer
 250:	5320  010020  		ld bc, iobsize
 251:	5323  ED32    		defw emt_read
 252:	5325  2805    		jr z, readok
 253:	5327  213154  	        ld hl, urder            ; read error (!!code in A)
 254:	532A  186A    		jr uerror
 255:	532C  D5      	readok:	push de			; save fd
 256:			
 257:			;; Translate
 258:	532D  3AF453  	        ld a, (nflag)		; check for NL feature
 259:	5330  A7      		and a
 260:	5331  2817    		jr z, nlfals
 261:	5333  218C54  		ld hl, iobuf
 262:	5336  C5      		push bc			; save byte count
 263:	5337  3E0A    		ld a, 0ah
 264:	5339  160D    		ld d, 0dh
 265:	533B  0C      		inc c			; deal with b=0 and/ c=0
 266:	533C  04      		inc b
 267:	533D  1805    		jr tstrt
 268:	533F  BE      	tloop:	cp (hl)
 269:	5340  2001    		jr nz, notcr
 270:	5342  72      		ld (hl), d
 271:	5343  23      	notcr:	inc hl
 272:	5344  0D      	tstrt:	dec c
 273:	5345  20F8    		jr nz, tloop
 274:	5347  10F6    		djnz tloop
 275:	5349  C1      		pop bc			; restore byte count
 276:			
 277:			;; Write
 278:	534A  C5      	nlfals:	push bc			; save byte count
 279:	534B  218C54  		ld hl, iobuf
 280:	534E  115C54  		ld de, dcb
 281:	5351  04      		inc b			; deal with b=0 and/or c=0
 282:	5352  79      		ld a, c
 283:	5353  A7      		and a
 284:	5354  2810    		jr z, wstrt
 285:	5356  225F54  	wloop:  ld (dcb+3), hl
 286:	5359  CD1452  		call write              ; write 256 bytes to file
 287:	535C  2807    	        jr z, wrok
 288:	535E  4F      		ld c, a
 289:	535F  CD1852  	        call error              ; oops, i/o error
 290:	5362  C32052  	        jp abort
 291:	5365  24      	wrok:	inc h
 292:	5366  10EE    	wstrt:  djnz wloop
 293:	5368  C1      		pop bc			; restore byte count
 294:			
 295:			;; Done?
 296:	5369  D1      		pop de			; restore fd
 297:	536A  79      		ld a, c
 298:	536B  A7      		and a
 299:	536C  2003    		jr nz, closit		; done for sure
 300:	536E  B8      		cp b
 301:	536F  20AC    		jr nz, rloop		; maybe not done (sloppy)
 302:			
 303:	5371  ED31    	closit:	defw emt_close		; close Unix file
 304:	5373  2805    		jr z, closok
 305:	5375  214654  	        ld hl, uclser           ; close error (!!code in A)
 306:	5378  181C    		jr uerror
 307:	537A  79      	closok:	ld a, c
 308:	537B  326454  		ld (dcb+8), a		; set EOF offset
 309:	537E  CD2852  		call setern		; set ERN (in case shortening file)
 310:	5381  115C54  		ld de, dcb
 311:	5384  CD0C52  	        call close              ; close the TRS-80 file
 312:	5387  2807    	        jr z, cls2ok
 313:	5389  4F      		ld c, a
 314:	538A  CD1852  	        call error              ; oops, i/o error
 315:	538D  C32052  	        jp abort
 316:	5390  210000  	cls2ok: ld hl, 0                ; all is well
 317:	5393  C31C52  		jp exit
 318:			
 319:			;; Unix error, msg in hl, errno in a
 320:	5396  F5      	uerror: push af
 321:	5397  CD2452  		call dsply
 322:	539A  F1      		pop af
 323:	539B  218C54  		ld hl, iobuf
 324:	539E  010001  		ld bc, 256
 325:	53A1  ED35    		defw emt_strerror
 326:	53A3  CD2452  		call dsply
 327:	53A6  C32052  	        jp abort
 328:			
 329:			;; Display message in HL.  03h terminate, 0dh newline and terminate.
 330:	53A9  111D40  	dsply5:	ld de, dodcb$
 331:	53AC  E5      		push hl
 332:	53AD  7E      	dsply0:	ld a, (hl)
 333:	53AE  FE03    		cp 03h
 334:	53B0  280A    		jr z, dsply1
 335:	53B2  F5      		push af
 336:	53B3  CD1B00  		call @put
 337:	53B6  F1      		pop af
 338:	53B7  23      		inc hl
 339:	53B8  FE0D    		cp 0dh
 340:	53BA  20F1    		jr nz, dsply0
 341:	53BC  E1      	dsply1:	pop hl
 342:	53BD  C9      		ret
 343:			
 344:			;; Convert (NUL terminated) string in HL to lower case.
 345:	53BE  E5      	lcconv:	push hl
 346:	53BF  54      		ld d, h
 347:	53C0  5D      		ld e, l
 348:	53C1  7E      	lcloop:	ld a, (hl)
 349:	53C2  FE5B    		cp 5bh			; use '[' or uparrow as escape
 350:	53C4  2004    		jr nz, lconv1
 351:	53C6  23      		inc hl
 352:	53C7  7E      		ld a, (hl)
 353:	53C8  1809    		jr lconv2		; char after esc: don't convert
 354:	53CA  D641    	lconv1:	sub 'A'
 355:	53CC  FE1A    		cp 26
 356:	53CE  7E      		ld a, (hl)
 357:	53CF  3002    		jr nc, lconv2
 358:	53D1  F620    		or 20h			; convert to lower case
 359:	53D3  12      	lconv2:	ld (de), a
 360:	53D4  23      		inc hl
 361:	53D5  13      		inc de
 362:	53D6  B7      		or a			; NUL terminator?
 363:	53D7  20E8    		jr nz, lcloop
 364:	53D9  E1      		pop hl
 365:	53DA  C9      		ret
 366:			
 367:			;; EOF handling differs between TRS-80 DOSes:
 368:			;;  For TRSDOS 2.3 and LDOS, word (dcb+12) contains the number of
 369:			;;  256 byte records in the file, byte (dcb+8) contains the EOF
 370:			;;  offset in the last record (0=256).
 371:			;;  For NEWDOS/80 and TRSDOS 1.3, byte (dcb+8) and word (dcb+12) 
 372:			;;  form a 24 bit number containing the relative byte address of EOF.
 373:			;;  Thus (dcb+12) differs by one if the file length is not a
 374:			;;  multiple of 256 bytes.  DOSPLUS also uses this convention,
 375:			;;  and NEWDOS 2.1 probably does too (not checked).
 376:			
 377:			; Set ending record number of file to current position
 378:			; EOF offset in C; destroys A, HL
 379:	53DB          	setern5:
 380:	53DB  2A6654  		ld hl, (dcb+10)		; current record number
 381:	53DE  3A5852  		ld a, (ernldos)         ; get ERN convention
 382:	53E1  B7      		or a
 383:	53E2  2004    		jr nz, noadj            ; go if TRSDOS 2.3/LDOS convention
 384:	53E4  B1      	adj:	or c			; length multiple of 256 bytes?
 385:	53E5  2801    		jr z, noadj             ; go if so
 386:	53E7  2B      		dec hl			; no, # of records - 1
 387:	53E8  226854  	noadj:	ld (dcb+12), hl
 388:	53EB  C9      		ret	
 389:			
 390:			; All Model 4 mode operating systems should be TRSDOS/LS-DOS 6.x compatible
 391:	53EC          	setern6:
 392:	53EC  2A6654  		ld hl, (dcb+10)
 393:	53EF  226854  		ld (dcb+12), hl
 394:	53F2  C9      		ret
 395:			
 396:	53F3  00      	lflag:	defb 0
 397:	53F4  00      	nflag:	defb 0
 398:			
 399:	53F5  55736167	usager: defb 'Usage: IMPORT [-lne] unixfile [tofile]', 0dh
	      653A2049
	      4D504F52
	      54205B2D
	      6C6E655D
	      20756E69
	      7866696C
	      65205B74
	      6F66696C
	      655D0D
 400:	541C  4572726F	uopner:	defb 'Error in Unix open: ', 03h
	      7220696E
	      20556E69
	      78206F70
	      656E3A20
	      03
 401:	5431  4572726F	urder:	defb 'Error in Unix read: ', 03h
	      7220696E
	      20556E69
	      78207265
	      61643A20
	      03
 402:	5446  4572726F	uclser:	defb 'Error in Unix close: ', 03h
	      7220696E
	      20556E69
	      7820636C
	      6F73653A
	      2003
 403:			
 404:	545C          	dcb:	defs 48			; 48 for Model III TRSDOS 1.3   
 405:	548C          	iobuf:	defs iobsize
 406:			        
 407:	5259          	        end import



Statistics:

   103	symbols
   604	bytes



Symbol Table:

@abort         =4030     emt_open       =30ed     nlfals          534a     
@abort6        =  15     emt_read       =32ed     noadj           53e8     
@close         =4428     emt_strerror   =35ed     not4            526d     
@close6        =  3c     emt_write      =33ed+    notcr           5343     
@dsply6        =   a     endj            522c     notdot          52cf     
@error         =4409     eo_accmode     =   3+    open            5208+    
@error6        =  1a     eo_append      = 400+    openok          52fa     
@exit          =402d     eo_creat       =  40+    opn2ok          531d     
@exit6         =  16     eo_excl        =  80+    readok          532c     
@fspec         =441c     eo_rdonly      =   0     reed            5210+    
@fspec6        =  4e     eo_rdwr        =   2+    rloop           531d     
@init          =4420     eo_trunc       = 200+    setern          5228     
@init6         =  3a     eo_wronly      =   1+    setern5         53db     
@open          =4424     ernldos         5258     setern6         53ec     
@open6         =  3b     error           5218     startj          5200     
@put           =  1b     exit            521c     startj6         522c     
@read          =4436     flag0           527c     tloop           533f     
@read6         =  43     flag1           5287     trs80           52d8     
@svc           =  28     flag2           52ad     tstrt           5344     
@write         =4439     flag3           528d     uclser          5446     
@write6        =  4b     flagl           5299     uerror          5396     
abort           5220     flagn           52a4     unix1           52b6     
adj             53e4+    fspec           5200     unix2           52bb     
close           520c     gotid           5279     unix3           52c7     
closit          5371     import          5259     unix4           52d7     
closok          537a     init            5204     uopner          541c     
cls2ok          5390     iobsize        =2000     urder           5431     
dcb             545c     iobuf           548c     usage           5314     
dodcb          =401d     lcconv          53be     usager          53f5     
dsply           5224     lcloop          53c1     wloop           5356     
dsply0          53ad     lconv1          53ca     write           5214     
dsply1          53bc     lconv2          53d3     wrok            5365     
dsply5          53a9     lflag           53f3     wstrt           5366     
emt_close      =31ed     lrlerr         =  2a     
emt_lseek      =34ed+    nflag           53f4