*** empty log message ***
This commit is contained in:
		
							parent
							
								
									d0268a4ec1
								
							
						
					
					
						commit
						22c95138aa
					
				
					 12 changed files with 4502 additions and 0 deletions
				
			
		
							
								
								
									
										48
									
								
								mach/pdp/int/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								mach/pdp/int/Makefile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,48 @@ | ||||||
|  | INTS=em_t--- em_---- em_tf-- em_t-c- em_t--p | ||||||
|  | b=../../../lib/pdp_int | ||||||
|  | 
 | ||||||
|  | all:	$(INTS) eminform em | ||||||
|  | 
 | ||||||
|  | em:	em.c | ||||||
|  | 	cc -o em -I../../../h em.c | ||||||
|  | 
 | ||||||
|  | eminform:	eminform.s | ||||||
|  | 	as eminform.s;ld -i -o eminform a.out -lc | ||||||
|  | 
 | ||||||
|  | em_t---:	t+ f- c- p- em_int.s | ||||||
|  | 	as t+ f- c- p- em_int.s;ld -i -o em_t--- a.out -lc | ||||||
|  | 
 | ||||||
|  | em_----:	t- f- c- p- em_int.s | ||||||
|  | 	as t- f- c- p- em_int.s;ld -i -o em_---- a.out -lc | ||||||
|  | 
 | ||||||
|  | em_tf--:	t+ f+ c- p- em_int.s | ||||||
|  | 	as t+ f+ c- p- em_int.s;ld -i -o em_tf-- a.out -lc | ||||||
|  | 
 | ||||||
|  | em_t-c-:	t+ f- c+ p- em_int.s | ||||||
|  | 	as t+ f- c+ p- em_int.s;ld -i -o em_t-c- a.out -lc | ||||||
|  | 
 | ||||||
|  | em_t--p:	t+ f- c- p+ em_int.s | ||||||
|  | 	as t+ f- c- p+ em_int.s;ld -i -o em_t--p a.out -lc | ||||||
|  | 
 | ||||||
|  | install:	all | ||||||
|  | 		-mkdir $b | ||||||
|  | 		cp em_???? $b | ||||||
|  | 		cp em eminform ../../../bin | ||||||
|  | 
 | ||||||
|  | cmp: 		all | ||||||
|  | 		cmp em_t--- $b/em_t--- | ||||||
|  | 		cmp em_---- $b/em_---- | ||||||
|  | 		cmp em_tf-- $b/em_tf-- | ||||||
|  | 		cmp em_t-c- $b/em_t-c- | ||||||
|  | 		cmp em_t--p $b/em_t--p | ||||||
|  | 		cmp em ../../../bin/em | ||||||
|  | 		cmp eminform ../../../bin/eminform | ||||||
|  | 
 | ||||||
|  | clean: | ||||||
|  | 		-rm -f *.o *.old a.out em eminform $(INTS) | ||||||
|  | 
 | ||||||
|  | opr: | ||||||
|  | 		make pr | opr | ||||||
|  | 
 | ||||||
|  | pr: | ||||||
|  | 		@pr em.c em_int.s eminform.s | ||||||
							
								
								
									
										19
									
								
								mach/pdp/int/README
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								mach/pdp/int/README
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | ||||||
|  | In this directory is a complete interpreter for EM-code on a | ||||||
|  | PDP 11, written in Unix assembly language. | ||||||
|  | The interpreter is split up in 7 files, em.v1 up to em.v7. | ||||||
|  | There exist assembler options .test .opfreq .flow .count .prof | ||||||
|  | and .last. | ||||||
|  | .test tests undefined integers, bad arrays etcetera | ||||||
|  | .opfreq makes a table of the usage of othe em-opcodes | ||||||
|  | .flow makes a table of the used lines | ||||||
|  | .count makes a count table of the used lines | ||||||
|  | .prof estimates the amount of time spent on each source line | ||||||
|  | .last gives a table of the last executed lines and files | ||||||
|  | The interpreter writes its runtime information on a file | ||||||
|  | em_runinf, which is converted to human readable files | ||||||
|  | em_last, em_opfreq, em_profile, em_flow and em_count by | ||||||
|  | the program eminform, for which we also have an assembler | ||||||
|  | source in this directory. | ||||||
|  | Because the size of the interpreter just exceeds 8k, it is | ||||||
|  | advisible to have either .prof or .test turned off on a machine | ||||||
|  | without separate I and D when a large user program is running. | ||||||
							
								
								
									
										1
									
								
								mach/pdp/int/c+
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								mach/pdp/int/c+
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | .count = 1 | ||||||
							
								
								
									
										1
									
								
								mach/pdp/int/c-
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								mach/pdp/int/c-
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | .count = 0 | ||||||
							
								
								
									
										3793
									
								
								mach/pdp/int/em_int.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3793
									
								
								mach/pdp/int/em_int.s
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										634
									
								
								mach/pdp/int/eminform.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										634
									
								
								mach/pdp/int/eminform.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,634 @@ | ||||||
|  | /  | ||||||
|  | /  (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands. | ||||||
|  | /  | ||||||
|  | /           This product is part of the Amsterdam Compiler Kit. | ||||||
|  | /  | ||||||
|  | /  Permission to use, sell, duplicate or disclose this software must be | ||||||
|  | /  obtained in writing. Requests for such permissions may be sent to | ||||||
|  | /  | ||||||
|  | /       Dr. Andrew S. Tanenbaum | ||||||
|  | /       Wiskundig Seminarium | ||||||
|  | /       Vrije Universiteit | ||||||
|  | /       Postbox 7161 | ||||||
|  | /       1007 MC Amsterdam | ||||||
|  | /       The Netherlands | ||||||
|  | /  | ||||||
|  | /   | ||||||
|  | /------------------------------------------------------------------------------ | ||||||
|  | / | ||||||
|  | 	indir	= 0 | ||||||
|  | 	exit	= 1 | ||||||
|  | 	fork	= 2 | ||||||
|  | 	read	= 3 | ||||||
|  | 	write	= 4 | ||||||
|  | 	open	= 5 | ||||||
|  | 	close	= 6 | ||||||
|  | 	creat	= 8. | ||||||
|  | 	unlink	= 10. | ||||||
|  | 	break	= 17. | ||||||
|  | 	alarm	= 27. | ||||||
|  | 	pause	= 29. | ||||||
|  | 	sleep	= 35. | ||||||
|  | 	signal	= 48. | ||||||
|  | 
 | ||||||
|  | 	iot	=	4 | ||||||
|  | /------------------------------------------------------------------------------ | ||||||
|  | /	External references | ||||||
|  | /------------------------------------------------------------------------------ | ||||||
|  | 
 | ||||||
|  | 	.globl	_end
 | ||||||
|  | 
 | ||||||
|  | / | ||||||
|  | /------------------------------------------------------------------------------ | ||||||
|  | /	Now the	real program starts | ||||||
|  | /------------------------------------------------------------------------------ | ||||||
|  | 
 | ||||||
|  | startoff: | ||||||
|  | 	mov	sp,memlim | ||||||
|  | 	mov	$ldfail,r5 | ||||||
|  | 	mov	$emfile,forward+2 | ||||||
|  | 	sys	indir;forward
 | ||||||
|  | 	jes	badruninf;
 | ||||||
|  | 	mov	r0,saver0;
 | ||||||
|  | 	mov	$rhfail,r5;
 | ||||||
|  | 	sys	read;header;34.
 | ||||||
|  | 	jes	badruninf;
 | ||||||
|  | 	cmp	$34.,r0 | ||||||
|  | 	jne	badruninf | ||||||
|  | 	mov	$rtfail,r5 | ||||||
|  | 	mov	$_end,loadstart | ||||||
|  | 	mov	option,r1 | ||||||
|  | 	bit	$17774,r1 | ||||||
|  | 	bne	1f | ||||||
|  | 	mov	tblmax,globmax | ||||||
|  | 1: | ||||||
|  | 	bit	$1,r1 | ||||||
|  | 	beq	1f | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	read;lasttab;98.
 | ||||||
|  | 	jes	badruninf;
 | ||||||
|  | 
 | ||||||
|  | 1:	bit	$2,r1 | ||||||
|  | 	beq	1f | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	read;opfrb;512.
 | ||||||
|  | 	jes	badruninf | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	read;opfra;512.
 | ||||||
|  | 	jes	badruninf | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	read;opfrc;640.
 | ||||||
|  | 	jes	badruninf | ||||||
|  | 1:	bit	$4,r1 | ||||||
|  | 	beq	1f | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	read;lcount;4
 | ||||||
|  | 	jes	badruninf | ||||||
|  | 1:	bit	$8.,r1 | ||||||
|  | 	beq	1f | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	read;lflow;4
 | ||||||
|  | 	jes	badruninf | ||||||
|  | 1:	bit	$16.,r1 | ||||||
|  | 	beq	1f | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	read;ltime;4
 | ||||||
|  | 	jes	badruninf | ||||||
|  | 1: | ||||||
|  | 	mov	tblmax,r3 | ||||||
|  | 	sub	pd,r3 | ||||||
|  | 	sub	ml,r3 | ||||||
|  | 	mov	$_end,sybreak+2 | ||||||
|  | 	add	r3,sybreak+2;
 | ||||||
|  | 	sys	indir;sybreak
 | ||||||
|  | 	mov	r3,lblread+4 | ||||||
|  | 	mov	$_end,lblread+2;
 | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	indir;lblread;
 | ||||||
|  | 	jes	badruninf | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	close | ||||||
|  | 	sys	unlink;emfile
 | ||||||
|  | lbladj: | ||||||
|  | 	add	$header,linused | ||||||
|  | 	sub	header,linused | ||||||
|  | 
 | ||||||
|  | 	mov	pd,filext | ||||||
|  | 	sub	loadstart,filext | ||||||
|  | 	mov	filext,filarg | ||||||
|  | 	add	ml,filarg | ||||||
|  | 	sub	tblmax,filarg | ||||||
|  | lbllast: | ||||||
|  | 	bit	$1,option	/test for last | ||||||
|  | 	beq	2f		/ no last table	jump | ||||||
|  | 	sys	creat;emlast;666
 | ||||||
|  | 	bcs	2f | ||||||
|  | 	cmp	linused,$lasttab | ||||||
|  | 	bhis	3f | ||||||
|  | 	mov	$yetmsg,lblwri+2 | ||||||
|  | 	mov	$40.,lblwri+4 | ||||||
|  | 	sys	indir;lblwri
 | ||||||
|  | 	br	2f | ||||||
|  | 3:	mov	r0,saver0 | ||||||
|  | 	cmp	linused-2,$-1 | ||||||
|  | 	bne	6f | ||||||
|  | 	mov	$linused-2,linused | ||||||
|  | 	clr	linused-2 | ||||||
|  | 6:	jsr	pc,slilast | ||||||
|  | 	inc	r2 | ||||||
|  | 	jsr	pc,nexttab | ||||||
|  | 	tst	(r5) | ||||||
|  | 	beq	3f | ||||||
|  | 	sub	$2,linused | ||||||
|  | 	cmp	eb,(r5) | ||||||
|  | 	blo	3f | ||||||
|  | 7:	cmp	r2,$lnend | ||||||
|  | 	blt	1f | ||||||
|  | 	jsr	pc,slnlast | ||||||
|  | 1:	jsr	pc,lnrnxt | ||||||
|  | 	bne	7b | ||||||
|  | 3:	jsr	pc,sfllast | ||||||
|  | 	bne	6b | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	close | ||||||
|  | 2: | ||||||
|  | 
 | ||||||
|  | lblopfreq: | ||||||
|  | 	bit	$2,option | ||||||
|  | 	beq	9f | ||||||
|  | 	sys	creat;emopf;666
 | ||||||
|  | 	bcs	9f | ||||||
|  | 	mov	r0,saver0 | ||||||
|  | 	mov	$opcode,r3 | ||||||
|  | 	mov	$104.,r4 | ||||||
|  | 	mov	$counttab,r5 | ||||||
|  | 0:	mov	$lnlast,r2 | ||||||
|  | 	mov	$8.,r0 | ||||||
|  | 2:	movb	(r3)+,(r2)+ | ||||||
|  | 	sob	r0,2b | ||||||
|  | 	add	$8,r2 | ||||||
|  | 	mov	r2,-(sp) | ||||||
|  | 	jsr	pc,ltoa | ||||||
|  | 	mov	(sp)+,r2 | ||||||
|  | 	add	$5,r2 | ||||||
|  | 	mov	$8.,r0 | ||||||
|  | 2:	movb	(r3)+,(r2)+ | ||||||
|  | 	sob	r0,2b | ||||||
|  | 	add	$8,r2 | ||||||
|  | 	mov	r2,-(sp) | ||||||
|  | 	jsr	pc,ltoa | ||||||
|  | 	mov	(sp)+,r2 | ||||||
|  | 	add	$5,r2 | ||||||
|  | 	mov	$8.,r0 | ||||||
|  | 2:	movb	(r3)+,(r2)+ | ||||||
|  | 	sob	r0,2b | ||||||
|  | 	add	$8,r2 | ||||||
|  | 	mov	r2,-(sp) | ||||||
|  | 	jsr	pc,ltoa | ||||||
|  | 	mov	(sp)+,r2 | ||||||
|  | 	add	$5,r2 | ||||||
|  | 	mov	$8.,r0 | ||||||
|  | 2:	movb	(r3)+,(r2)+ | ||||||
|  | 	sob	r0,2b | ||||||
|  | 	add	$8,r2 | ||||||
|  | 	mov	r2,-(sp) | ||||||
|  | 	jsr	pc,ltoa | ||||||
|  | 	mov	(sp)+,r2 | ||||||
|  | 	mov	r3,-(sp) | ||||||
|  | 	jsr	pc,slnlast | ||||||
|  | 	mov	(sp)+,r3 | ||||||
|  | 	sob	r4,0b | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	close | ||||||
|  | 9: | ||||||
|  | lblcount: | ||||||
|  | 	clr	filb | ||||||
|  | 	bit	$4,option | ||||||
|  | 	beq	9f | ||||||
|  | 	sys	creat;emcount;666
 | ||||||
|  | 	bcs	9f | ||||||
|  | 	mov	r0,saver0 | ||||||
|  | 	mov	lcount,r5 | ||||||
|  | 	add	$4,r5 | ||||||
|  | 	sub	filext,r5 | ||||||
|  | 	jsr	pc,procrun | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	close | ||||||
|  | 9: | ||||||
|  | lblprof: | ||||||
|  | 	bit	$16.,option | ||||||
|  | 	beq	9f | ||||||
|  | 	sys	creat;emprof;666
 | ||||||
|  | 	bcs	9f | ||||||
|  | 	mov	r0,saver0 | ||||||
|  | 	mov	ltime,r5 | ||||||
|  | 	sub	filext,r5 | ||||||
|  | 	mov	$profmsg,lblwri+2 | ||||||
|  | 	mov	$29,lblwri+4 | ||||||
|  | 	mov	$profmsg+27,r2 | ||||||
|  | 	jsr	pc,ltoa | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	indir;lblwri
 | ||||||
|  | 	jsr	pc,procrun | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	close | ||||||
|  | 9: | ||||||
|  | lblflow: | ||||||
|  | 	mov	$1,filb | ||||||
|  | 	bit	$8.,option | ||||||
|  | 	beq	9f | ||||||
|  | 	sys	creat;emflow;666
 | ||||||
|  | 	bcs	9f | ||||||
|  | 	mov	lflow,r5 | ||||||
|  | 	mov	$-1,flowsiz | ||||||
|  | 	sub	filext,r5 | ||||||
|  | 	jsr	pc,procrun | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	close | ||||||
|  | 9: | ||||||
|  | 	clr	r0 | ||||||
|  | 	sys	exit | ||||||
|  | 
 | ||||||
|  | badruninf: | ||||||
|  | 	mov	$0f,lblwri+2 | ||||||
|  | 	mov	$21.,lblwri+4 | ||||||
|  | 	mov	$2,r0 | ||||||
|  | 	sys	indir;lblwri
 | ||||||
|  | 	mov	r5,lblwri+2 | ||||||
|  | 	mov	$23.,lblwri+4 | ||||||
|  | 	mov	$2,r0 | ||||||
|  | 	sys	indir;lblwri
 | ||||||
|  | 	iot			/force core dump | ||||||
|  | .data | ||||||
|  | lblwri: | ||||||
|  |         sys     write;0;0
 | ||||||
|  | forward: | ||||||
|  |         sys     open;0;0
 | ||||||
|  | sybreak: | ||||||
|  |         sys     break;0;
 | ||||||
|  | lblread: | ||||||
|  |         sys     read;0;0
 | ||||||
|  | 0:      <em_runinf load error,\0> | ||||||
|  | ldfail: < open runinf failed   \n\0> | ||||||
|  | rhfail: < read header failed   \n\0> | ||||||
|  | rtfail: < read tables failed   \n\0> | ||||||
|  | msgto:  <to> | ||||||
|  | emlast: <em_last\0> | ||||||
|  | emcount:<em_count\0> | ||||||
|  | emfile: <em_runinf\0> | ||||||
|  | emopf:  <em_opfreq\0> | ||||||
|  | emprof: <em_profile\0> | ||||||
|  | emflow: <em_flow\0> | ||||||
|  | yetmsg: <no line or file message processed yet \n\n\0> | ||||||
|  | unknown:<with unknown filename\0> | ||||||
|  | lilast: <\nlines               \0> | ||||||
|  | lnlast: <                              > | ||||||
|  |         <                              > | ||||||
|  | lnend:  <                                  \0> | ||||||
|  | fllast: <    of file                       > | ||||||
|  |         <                                  \0> | ||||||
|  | profmsg:<\ninitialization             \n\0> | ||||||
|  | sep:    <\n\0> | ||||||
|  | /---------------------------------------------------------------------------- | ||||||
|  | opcode: | ||||||
|  | <loc.0   loc.1   loc.2   loc.3   loc.4   loc.5   loc.6   loc.7   > | ||||||
|  | <loc.8   loc.9   loc.10  loc.11  loc.12  loc.13  loc.14  loc.15  > | ||||||
|  | <loc.16  loc.17  loc.18  loc.19  loc.20  loc.21  loc.22  loc.23  > | ||||||
|  | <loc.24  loc.25  loc.26  loc.27  loc.28  loc.29  loc.30  loc.31  > | ||||||
|  | <loc.32  loc.33  aar.1W  adf.s0  adi.1W  adi.2W  adp.l   adp.1   > | ||||||
|  | <adp.2   adp.s0  adp.s_1 ads.1W  and.1W  asp.1W  asp.2W  asp.3W  > | ||||||
|  | <asp.4W  asp.5W  asp.w0  beq.l   beq.s0  bge.s0  bgt.s0  ble.s0  > | ||||||
|  | <blm.s0  blt.s0  bne.s0  bra.l   bra.s_1 bra.s_2 bra.s0  bra.s1  > | ||||||
|  | <cal.1   cal.2   cal.3   cal.4   cal.5   cal.6   cal.7   cal.8   > | ||||||
|  | <cal.9   cal.10  cal.11  cal.12  cal.13  cal.14  cal.15  cal.16  > | ||||||
|  | <cal.17  cal.18  cal.19  cal.20  cal.21  cal.22  cal.23  cal.24  > | ||||||
|  | <cal.25  cal.26  cal.27  cal.28  cal.s0  cff.z   cif.z   cii.z   > | ||||||
|  | <cmf.s0  cmi.1W  cmi.2W  cmp.z   cms.s0  csa.1W  csb.1W  dec.z   > | ||||||
|  | <dee.w0  del.w_1 dup.1W  dvf.s0  dvi.1W  fil.l   inc.z   ine.lw  > | ||||||
|  | <ine.w0  inl._1W inl._2W inl._3W inl.w_1 inn.s0  ior.1W  ior.s0  > | ||||||
|  | <lae.l   lae.w0  lae.w1  lae.w2  lae.w3  lae.w4  lae.w5  lae.w6  > | ||||||
|  | 
 | ||||||
|  | <lal.p   lal.n   lal.0   lal._1  lal.w0  lal.w_1 lal.w_2 lar.1W  > | ||||||
|  | <ldc.0   lde.lw  lde.w0  ldl.0   ldl.w_1 lfr.1W  lfr.2W  lfr.s0  > | ||||||
|  | <lil.w_1 lil.w0  lil.0   lil.1W  lin.l   lin.s0  lni.z   loc.l   > | ||||||
|  | <loc._1  loc.s0  loc.s_1 loe.lw  loe.w0  loe.w1  loe.w2  loe.w3  > | ||||||
|  | <loe.w4  lof.l   lof.1W  lof.2W  lof.3W  lof.4W  lof.s0  loi.l   > | ||||||
|  | <loi.1   loi.1W  loi.2W  loi.3W  loi.4W  loi.s0  lol.pw  lol.nw  > | ||||||
|  | <lol.0   lol.1W  lol.2W  lol.3W  lol._1W lol._2W lol._3W lol._4W > | ||||||
|  | <lol._5W lol._6W lol._7W lol._8W lol.w0  lol.w_1 lxa.1   lxl.1   > | ||||||
|  | <lxl.2   mlf.s0  mli.1W  mli.2W  rck.1W  ret.0   ret.1W  ret.s0  > | ||||||
|  | <rmi.1W  sar.1W  sbf.s0  sbi.1W  sbi.2W  sdl.w_1 set.s0  sil.w_1 > | ||||||
|  | <sil.w0  sli.1W  ste.lw  ste.w0  ste.w1  ste.w2  stf.l   stf.1W  > | ||||||
|  | <stf.2W  stf.s0  sti.1   sti.1W  sti.2W  sti.3W  sti.4W  sti.s0  > | ||||||
|  | <stl.pw  stl.nw  stl.0   stl.1W  stl._1W stl._2W stl._3W stl._4W > | ||||||
|  | <stl._5W stl.w_1 teq.z   tgt.z   tlt.z   tne.z   zeq.l   zeq.s0  > | ||||||
|  | <zeq.s1  zer.s0  zge.s0  zgt.s0  zle.s0  zlt.s0  zne.s0  zne.s_1 > | ||||||
|  | <zre.lw  zre.w0  zrl._1W zrl._2W zrl.w_1 zrl.nw  escape1 escape2 > | ||||||
|  | 
 | ||||||
|  | <aar.l   aar.z   adf.l   adf.z   adi.l   adi.z   ads.l   ads.z   > | ||||||
|  | <adu.l   adu.z   and.l   and.z   asp.lw  ass.l   ass.z   bge.l   > | ||||||
|  | <bgt.l   ble.l   blm.l   bls.l   bls.z   blt.l   bne.l   cai.z   > | ||||||
|  | <cal.l   cfi.z   cfu.z   ciu.z   cmf.l   cmf.z   cmi.l   cmi.z   > | ||||||
|  | <cms.l   cms.z   cmu.l   cmu.z   com.l   com.z   csa.l   csa.z   > | ||||||
|  | <csb.l   csb.z   cuf.z   cui.z   cuu.z   dee.lw  del.pw  del.nw  > | ||||||
|  | <dup.l   dus.l   dus.z   dvf.l   dvf.z   dvi.l   dvi.z   dvu.l   > | ||||||
|  | <dvu.z   fef.l   fef.z   fif.l   fif.z   inl.pw  inl.nw  inn.l   > | ||||||
|  | <inn.z   ior.l   ior.z   lar.l   lar.z   ldc.l   ldf.l   ldl.pw  > | ||||||
|  | <ldl.nw  lfr.l   lil.pw  lil.nw  lim.z   los.l   los.z   lor.s0  > | ||||||
|  | <lpi.l   lxa.l   lxl.l   mlf.l   mlf.z   mli.l   mli.z   mlu.l   > | ||||||
|  | <mlu.z   mon.z   ngf.l   ngf.z   ngi.l   ngi.z   nop.z   rck.l   > | ||||||
|  | <rck.z   ret.l   rmi.l   rmi.z   rmu.l   rmu.z   rol.l   rol.z   > | ||||||
|  | <ror.l   ror.z   rtt.z   sar.l   sar.z   sbf.l   sbf.z   sbi.l   > | ||||||
|  | <sbi.z   sbs.l   sbs.z   sbu.l   sbu.z   sde.l   sdf.l   sdl.pw  > | ||||||
|  | <sdl.nw  set.l   set.z   sig.z   sil.pw  sil.nw  sim.z   sli.l   > | ||||||
|  | 
 | ||||||
|  | <sli.z   slu.l   slu.z   sri.l   sri.z   sru.l   sru.z   sti.l   > | ||||||
|  | <sts.l   sts.z   str.s0  tge.z   tle.z   trp.z   xor.l   xor.z   > | ||||||
|  | <zer.l   zer.z   zge.l   zgt.l   zle.l   zlt.l   zne.l   zrf.l   > | ||||||
|  | <zrf.z   zrl.pw  dch.z   exg.s0  exg.l   exg.z   lpb.z   gto.l   \0\0> | ||||||
|  | 	.even | ||||||
|  | 	.text | ||||||
|  | /------------------------------------------------------------------------------ | ||||||
|  | /	General	subroutines | ||||||
|  | /------------------------------------------------------------------------------ | ||||||
|  | 
 | ||||||
|  | wrdoff:	movb	(r3)+,r0       /get first byte | ||||||
|  | 	swab	r0		/put it	in high	byte | ||||||
|  | 	clrb	r0		/clear low byte	of r0 | ||||||
|  | 	bisb	(r3)+,r0       /"or" second byte in | ||||||
|  | 	rts	pc		/done | ||||||
|  | 
 | ||||||
|  | /------------------------------------------------------------------------------ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | nexttab: mov	linused,r5;
 | ||||||
|  | 	add	$2,r5		/ increment lasttab | ||||||
|  | 	cmp	r5,$linused	/ top of table reached? | ||||||
|  | 	blo	1f | ||||||
|  | 	sub	$96.,r5 | ||||||
|  | 1:	mov	r5,linused | ||||||
|  | 	rts	pc | ||||||
|  | 
 | ||||||
|  | slilast: mov	$lnlast,r2 | ||||||
|  | 	mov	$6,r0 | ||||||
|  | 	mov	$lilast,r3 | ||||||
|  | 2:	movb	(r3)+,(r2)+ | ||||||
|  | 	sob	r0,2b | ||||||
|  | 	rts	pc | ||||||
|  | 
 | ||||||
|  | slnlast: mov	$lnlast,lblwri+2 | ||||||
|  | 	mov	r2,r3 | ||||||
|  | 	sub	$lnlast,r3 | ||||||
|  | 	beq	3f | ||||||
|  | 	inc	r3 | ||||||
|  | 	movb	sep,(r2) | ||||||
|  | 1:	mov	r3,lblwri+4 | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	indir; lblwri
 | ||||||
|  | 	mov	$lnlast,r2 | ||||||
|  | 2:	movb	$' ,(r2)+ | ||||||
|  | 	sob	r3,2b | ||||||
|  | 3:	mov	$lnlast,r2 | ||||||
|  | 	rts	pc | ||||||
|  | 
 | ||||||
|  | lnrnxt:	jsr	pc,nexttab | ||||||
|  | 	tst	(r5) | ||||||
|  | 	ble	0f | ||||||
|  | 	mov	(r5),r1 | ||||||
|  | 	clr	(r5) | ||||||
|  | 	add	$6,r2 | ||||||
|  | 	mov	r2,r0 | ||||||
|  | 	jsr	pc,itoa | ||||||
|  | 0:	rts	pc | ||||||
|  | 
 | ||||||
|  | sfllast:jsr	pc,nexttab | ||||||
|  | 	tst	(r5) | ||||||
|  | 	bne	0f | ||||||
|  | 	clr	linused | ||||||
|  | 	mov	eb,-(sp) | ||||||
|  | 	sub	filext,(sp) | ||||||
|  | 	add	$4,(sp) | ||||||
|  | 	mov	*(sp),(sp) | ||||||
|  | 	mov	(sp)+,(r5) | ||||||
|  | 0:	jsr	pc,slnlast | ||||||
|  | 	jsr	pc,filadj | ||||||
|  | 	mov	$14.,r3 | ||||||
|  | 	mov	$fllast+14.,r2 | ||||||
|  | 	mov	(r5),r0 | ||||||
|  | 3:	inc	r3 | ||||||
|  | 	movb	(r0)+,(r2)+ | ||||||
|  | 	bne	3b | ||||||
|  | 	movb	sep,-(r2) | ||||||
|  | 	mov	$fllast,lblwri+2 | ||||||
|  | 	mov	r3,lblwri+4 | ||||||
|  | 	mov	saver0,r0 | ||||||
|  | 	sys	indir;lblwri
 | ||||||
|  | 	mov	$fllast+14.,r2 | ||||||
|  | 	sub	$10.,r3 | ||||||
|  | 2:	movb	$' ,(r2)+ | ||||||
|  | 	sob	r3,2b | ||||||
|  | 	clr	(r5) | ||||||
|  | 	tst	linused | ||||||
|  | 	beq	2f | ||||||
|  | 	jsr	pc,slilast | ||||||
|  | 2:	rts	pc | ||||||
|  | 
 | ||||||
|  | filadj: | ||||||
|  | 	cmp	ml,(r5) | ||||||
|  | 	bhi	8f | ||||||
|  | 	sub	filarg,(r5) | ||||||
|  | 	br	7f | ||||||
|  | 8:	cmp	eb,(r5) | ||||||
|  | 	bhi	7f | ||||||
|  | 	sub	filext,(r5) | ||||||
|  | 7:	rts	pc | ||||||
|  | 
 | ||||||
|  | procrun: | ||||||
|  | 	mov	firstp,r4 | ||||||
|  | 	sub	filext,r4 | ||||||
|  | 0: | ||||||
|  | 	tst	4(r4) | ||||||
|  | 	beq	8f | ||||||
|  | 	jsr	pc,msgfile | ||||||
|  | 	mov	r4,-(sp) | ||||||
|  | 	mov	countsiz,r4 | ||||||
|  | 7:	cmp	r2,$lnend+10 | ||||||
|  | 	blo	6f | ||||||
|  | 	jsr	pc,slnlast | ||||||
|  | 	mov	$lnlast,r2 | ||||||
|  | 6:	tst	filb | ||||||
|  | 	bne	3f | ||||||
|  | 	add	$11.,r2 | ||||||
|  | 	mov	r2,-(sp) | ||||||
|  | 	jsr	pc,ltoa | ||||||
|  | 	mov	(sp)+,r2 | ||||||
|  | 	br	4f | ||||||
|  | 3: | ||||||
|  | 	jsr	pc,bittoa | ||||||
|  | 	add	$4,r2 | ||||||
|  | 4:	sob	r4,7b | ||||||
|  | 	jsr	pc,slnlast | ||||||
|  | 	mov	(sp)+,r4 | ||||||
|  | 8:	mov	8.(r4),r4 | ||||||
|  | 	beq	8f | ||||||
|  | 	sub	filext,r4 | ||||||
|  | 	br	0b | ||||||
|  | 	mov	r0,saver0 | ||||||
|  | 	sys	write;sep;1
 | ||||||
|  | 8:	rts	pc | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | msgfile: | ||||||
|  | 	jsr	pc,slilast | ||||||
|  | 	add	$6,r2 | ||||||
|  | 	mov	6(r4),r1 | ||||||
|  | 	mov	r2,r0 | ||||||
|  | 	jsr	pc,itoa | ||||||
|  | 	add	$4,r2 | ||||||
|  | 	movb	 msgto,(r2)+ | ||||||
|  | 	movb	msgto+1,(r2)+ | ||||||
|  | 	add	$6,r2 | ||||||
|  | 	mov	8.(r4),r1 | ||||||
|  | 3:	bne	1f | ||||||
|  | 	mov	maxcount,r1 | ||||||
|  | 	br	2f | ||||||
|  | 1:	sub	filext,r1 | ||||||
|  | 	tst	4(r1) | ||||||
|  | 	beq	1f | ||||||
|  | 	mov	4(r1),r1 | ||||||
|  | 	br	2f | ||||||
|  | 1:	mov	8.(r1),r1 | ||||||
|  | 	br	3b | ||||||
|  | 2:	sub	4(r4),r1 | ||||||
|  | 	mov	r1,countsiz | ||||||
|  | 	dec	r1		/ is this a bug? | ||||||
|  | 	add	6(r4),r1 | ||||||
|  | 	mov	r2,r0 | ||||||
|  | 	jsr	pc,itoa | ||||||
|  | 	mov	$fllast,r3 | ||||||
|  | 	mov	$14,r1 | ||||||
|  | 2:	movb	(r3)+,(r2)+ | ||||||
|  | 	sob	r1,2b | ||||||
|  | 	mov	10.(r4),r3 | ||||||
|  | 	bne	6f | ||||||
|  | 	mov	$unknown,r3 | ||||||
|  | 	br	5f | ||||||
|  | 6:	cmp	ml,r3 | ||||||
|  | 	bhi	4f | ||||||
|  | 	sub	filarg,r3 | ||||||
|  | 	br	5f | ||||||
|  | 4:	cmp	eb,r3 | ||||||
|  | 	bhi	5f | ||||||
|  | 	sub	filext,r3 | ||||||
|  | 5: | ||||||
|  | lblmsgf: | ||||||
|  | 2:	movb	(r3)+,(r2)+ | ||||||
|  | 	bne	2b | ||||||
|  | 	jsr	pc,slnlast | ||||||
|  | 	rts	pc | ||||||
|  | 
 | ||||||
|  | itoa: | ||||||
|  | 
 | ||||||
|  | 	mov	r5,-(sp) | ||||||
|  | 	mov	r0,r5 | ||||||
|  | 1:	clr	r0 | ||||||
|  | 	div	$10.,r0 | ||||||
|  | 	add	$'0,r1 | ||||||
|  | 	movb	r1,-(r5) | ||||||
|  | 	mov	r0,r1 | ||||||
|  | 	bne	1b | ||||||
|  | 	mov	r5,r0 | ||||||
|  | 	mov	(sp)+,r5 | ||||||
|  | 	rts	pc | ||||||
|  | 
 | ||||||
|  | 	rts	pc | ||||||
|  | ltoa: | ||||||
|  | 0:	mov	(r5),r1 | ||||||
|  | 	clr	r0 | ||||||
|  | 	div	$10.,r0 | ||||||
|  | 	mov	r0,(r5) | ||||||
|  | 	swab	r1 | ||||||
|  | 	clr	r0 | ||||||
|  | 	bisb	3(r5),r1 | ||||||
|  | 	div	$10.,r0 | ||||||
|  | 	movb	r0,3(r5) | ||||||
|  | 	clr	r0 | ||||||
|  | 	swab	r1 | ||||||
|  | 	bisb	2(r5),r1 | ||||||
|  | 	div	$10.,r0 | ||||||
|  | 	add	$'0,r1 | ||||||
|  | 	movb	r1,-(r2) | ||||||
|  | 	movb	r0,2(r5) | ||||||
|  | 	bne	0b | ||||||
|  | 	tst	(r5) | ||||||
|  | 	bne	0b | ||||||
|  | 	add	$4,r5 | ||||||
|  | 	rts	pc | ||||||
|  | 
 | ||||||
|  | bittoa: | ||||||
|  | 	mov	(r5),r1 | ||||||
|  | 	mov	flowsiz,r0 | ||||||
|  | 	ash	r0,r1 | ||||||
|  | 	bit	$1,r1 | ||||||
|  | 	beq	0f | ||||||
|  | 	movb	$'1,(r2) | ||||||
|  | 	br	1f | ||||||
|  | 0:	movb	$'0,(r2) | ||||||
|  | 1:	dec	r0 | ||||||
|  | 	cmp	$-16.,r0 | ||||||
|  | 	beq	2f | ||||||
|  | 	mov	r0,flowsiz | ||||||
|  | 	br	3f | ||||||
|  | 2:	clr	flowsiz | ||||||
|  | 	add	$2,r5 | ||||||
|  | 3:	rts	pc | ||||||
|  | 
 | ||||||
|  | /------------------------------------------------------------------------------ | ||||||
|  | /	Leftover data | ||||||
|  | /------------------------------------------------------------------------------ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	.bss | ||||||
|  | filb:	.=.+2 | ||||||
|  | loadstart:	.=.+2 | ||||||
|  | saver0:		.=.+2 | ||||||
|  | filarg:		.=.+2 | ||||||
|  | filext:		.=.+2 | ||||||
|  | memlim:		.=.+2 | ||||||
|  | header: | ||||||
|  | bstrt:	txtsiz:	.=.+2 | ||||||
|  | bend:	ndatad:	.=.+2 | ||||||
|  | 	nprocs:	.=.+2 | ||||||
|  | option:	entry.:	.=.+2 | ||||||
|  | 	nlines:	.=.+2 | ||||||
|  | 	szdata:	.=.+2 | ||||||
|  | 	firstp:	.=.+2 | ||||||
|  | 	maxcount: .=.+2 | ||||||
|  | argc:	.=.+2 | ||||||
|  | argv:	.=.+2 | ||||||
|  | environ: | ||||||
|  | 	.=.+2 | ||||||
|  | pb:	.=.+2 | ||||||
|  | pd:	.=.+2 | ||||||
|  | eb:	.=.+2 | ||||||
|  | globmax: .=.+2 | ||||||
|  | tblmax:	.=.+2 | ||||||
|  | ml:	.=.+2 | ||||||
|  | lasttab:.=.+96.	       / 16 descriptors	of integers + index at the end | ||||||
|  | linused:.=.+2 | ||||||
|  | 
 | ||||||
|  | counttab: | ||||||
|  | opfra:	.=.+512. | ||||||
|  | opfrb:	.=.+512. | ||||||
|  | opfrc:	.=.+640. | ||||||
|  | 
 | ||||||
|  | lcount:	.=.+2 | ||||||
|  | countsiz:.=.+2 | ||||||
|  | 
 | ||||||
|  | lflow:	.=.+2 | ||||||
|  | flowsiz:.=.+2 | ||||||
|  | 
 | ||||||
|  | ltime:	.=.+2 | ||||||
|  | profsiz:.=.+2 | ||||||
							
								
								
									
										1
									
								
								mach/pdp/int/f+
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								mach/pdp/int/f+
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | .flow = 1 | ||||||
							
								
								
									
										1
									
								
								mach/pdp/int/f-
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								mach/pdp/int/f-
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | .flow = 0 | ||||||
							
								
								
									
										1
									
								
								mach/pdp/int/p+
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								mach/pdp/int/p+
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | .prof = 1 | ||||||
							
								
								
									
										1
									
								
								mach/pdp/int/p-
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								mach/pdp/int/p-
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | .prof = 0 | ||||||
							
								
								
									
										1
									
								
								mach/pdp/int/t+
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								mach/pdp/int/t+
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | .test = 1 | ||||||
							
								
								
									
										1
									
								
								mach/pdp/int/t-
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								mach/pdp/int/t-
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | .test = 0 | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue