Initial revision
This commit is contained in:
		
							parent
							
								
									8defe7ce53
								
							
						
					
					
						commit
						d5aa088876
					
				
					 76 changed files with 1938 additions and 0 deletions
				
			
		
							
								
								
									
										39
									
								
								mach/pdp/libem/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								mach/pdp/libem/Makefile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,39 @@ | ||||||
|  | l=../lib | ||||||
|  | 
 | ||||||
|  | install:	cp | ||||||
|  | 
 | ||||||
|  | cp:             all | ||||||
|  | 		cp head_em $l/head_em | ||||||
|  | 		cp tail_em $l/tail_em | ||||||
|  | 		rm -f head_em tail_em | ||||||
|  | 
 | ||||||
|  | cmp:            all | ||||||
|  | 		cmp head_em $l/head_em | ||||||
|  | 		cmp tail_em $l/tail_em | ||||||
|  | 		rm -f head_em tail_em | ||||||
|  | 
 | ||||||
|  | all:            head_em tail_em | ||||||
|  | 
 | ||||||
|  | head_em:        head_em.s | ||||||
|  | 		pdp -c head_em.s ; mv head_em.o head_em | ||||||
|  | 
 | ||||||
|  | tail_em:        tail_em.s.a | ||||||
|  | 		mkdir tmp; \
 | ||||||
|  | 		cd tmp; \
 | ||||||
|  | 		ar x ../tail_em.s.a; \
 | ||||||
|  | 		for i in *.s; \
 | ||||||
|  | 		do \
 | ||||||
|  | 		  pdp -c $$i; \
 | ||||||
|  | 		done; \
 | ||||||
|  | 		ar cr tail.a `lorder *.o | tsort`; \
 | ||||||
|  | 		cp tail.a ../tail_em; \
 | ||||||
|  | 		cd ..; \
 | ||||||
|  | 		rm -r tmp | ||||||
|  | 
 | ||||||
|  | clean: | ||||||
|  | 		-rm -f `ar t tail_em.s.a` ; rm -rf temp ; rm -f *.o | ||||||
|  | opr: | ||||||
|  | 		make pr | opr | ||||||
|  | pr: | ||||||
|  | 		@pr `pwd`/Makefile `pwd`/head_em.s | ||||||
|  | 		@ar pv tail_em.s.a | pr -h `pwd`/tail_em.s.a | ||||||
							
								
								
									
										10
									
								
								mach/pdp/libem/RT.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								mach/pdp/libem/RT.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | ||||||
|  | 	.globl RT,RTr2,RTr2r4 | ||||||
|  | 
 | ||||||
|  | RTr2r4: | ||||||
|  | 	mov (sp)+,r4 | ||||||
|  | RTr2: | ||||||
|  | 	mov (sp)+,r2 | ||||||
|  | RT: | ||||||
|  | 	mov r5,sp | ||||||
|  | 	mov (sp)+,r5 | ||||||
|  | 	rts pc | ||||||
							
								
								
									
										12
									
								
								mach/pdp/libem/aar.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								mach/pdp/libem/aar.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | ||||||
|  | .text | ||||||
|  | .globl aar~ | ||||||
|  | 
 | ||||||
|  | /r0 : description address | ||||||
|  | /r1 : element number | ||||||
|  | /base address is on stack | ||||||
|  | aar~: | ||||||
|  | 	sub	(r0),r1 | ||||||
|  | 	mov	04(r0),r0 | ||||||
|  | 	mul	r0,r1 | ||||||
|  | 	add	r1,02(sp) | ||||||
|  | 	rts	pc | ||||||
							
								
								
									
										13
									
								
								mach/pdp/libem/adf.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								mach/pdp/libem/adf.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | .text | ||||||
|  | .globl adf~ | ||||||
|  | .globl setfloat~ | ||||||
|  | 
 | ||||||
|  | /size in r0 | ||||||
|  | adf~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	jsr	pc,setfloat~ | ||||||
|  | 	movf	(sp)+,r0 | ||||||
|  | 	addf	(sp)+,r0 | ||||||
|  | 	movf	r0,-(sp) | ||||||
|  | 	setl | ||||||
|  | 	jmp	(r1) | ||||||
							
								
								
									
										19
									
								
								mach/pdp/libem/adi.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								mach/pdp/libem/adi.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | ||||||
|  | .text | ||||||
|  | .globl adi~ | ||||||
|  | .globl unknown~ | ||||||
|  | 
 | ||||||
|  | /size in r0 | ||||||
|  | adi~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	cmp	r0,$04 | ||||||
|  | 	bgt	1f | ||||||
|  | 	cmp	r0,$02 | ||||||
|  | 	bgt	2f | ||||||
|  | 	add	(sp)+,(sp) | ||||||
|  | 	jmp	(r1) | ||||||
|  | 2:	add	(sp)+,02(sp) | ||||||
|  | 	add	(sp)+,02(sp) | ||||||
|  | 	adc	(sp) | ||||||
|  | 	jmp	(r1) | ||||||
|  | 1: | ||||||
|  | 	jmp	unknown~ | ||||||
							
								
								
									
										13
									
								
								mach/pdp/libem/and.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								mach/pdp/libem/and.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | .text | ||||||
|  | .globl and~ | ||||||
|  | .globl save1~ | ||||||
|  | 
 | ||||||
|  | and~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	mov	sp,r1 | ||||||
|  | 	add	r0,r1 | ||||||
|  | 	asr	r0 | ||||||
|  | 1:	com	(sp) | ||||||
|  | 	bic	(sp)+,(r1)+ | ||||||
|  | 	sob	r0,1b | ||||||
|  | 	jmp	*save1~ | ||||||
							
								
								
									
										28
									
								
								mach/pdp/libem/blm.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								mach/pdp/libem/blm.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,28 @@ | ||||||
|  | .globl blm~ | ||||||
|  | .globl save~,retu~ | ||||||
|  | 
 | ||||||
|  | / Size in r0 | ||||||
|  | blm~: | ||||||
|  | 	jsr	pc,save~ | ||||||
|  | 	mov	(sp)+,r2 | ||||||
|  | 	mov	(sp)+,r3 | ||||||
|  | 	mov	r0,r1 | ||||||
|  | 	asr	r0 | ||||||
|  | 	beq	2f | ||||||
|  | / Now avoid wrong copy. | ||||||
|  | / The pieces may overlap ! | ||||||
|  | 	cmp	r3,r2 | ||||||
|  | 	beq	2f | ||||||
|  | 	blt	3f | ||||||
|  | 1: | ||||||
|  | 	mov	(r3)+,(r2)+ | ||||||
|  | 	sob	r0,1b | ||||||
|  | 2: | ||||||
|  | 	jmp	retu~ | ||||||
|  | 3: | ||||||
|  | 	add	r1,r3 | ||||||
|  | 	add	r1,r2 | ||||||
|  | 4: | ||||||
|  | 	mov	-(r3),-(r2) | ||||||
|  | 	sob	r0,4b | ||||||
|  | 	br	2b | ||||||
							
								
								
									
										14
									
								
								mach/pdp/libem/cff.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								mach/pdp/libem/cff.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | .text | ||||||
|  | .globl cff~ | ||||||
|  | .globl setfloat~ | ||||||
|  | 
 | ||||||
|  | cff~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	cmp	(sp)+,r0 | ||||||
|  | 	beq	1f | ||||||
|  | 	jsr	pc,setfloat~ | ||||||
|  | 	movof	(sp)+,r0 | ||||||
|  | 	movf	r0,-(sp) | ||||||
|  | 	setl | ||||||
|  | 1:	jmp	(r1) | ||||||
							
								
								
									
										14
									
								
								mach/pdp/libem/cfi.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								mach/pdp/libem/cfi.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | .text | ||||||
|  | .globl cfi~ | ||||||
|  | .globl setfloat~,setint~ | ||||||
|  | 
 | ||||||
|  | cfi~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	jsr	pc,setint~ | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	jsr	pc,setfloat~ | ||||||
|  | 	movf	(sp)+,r0 | ||||||
|  | 	movfi	r0,-(sp) | ||||||
|  | 	setl;seti
 | ||||||
|  | 	jmp	(r1) | ||||||
							
								
								
									
										24
									
								
								mach/pdp/libem/cif.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								mach/pdp/libem/cif.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | ||||||
|  | .text | ||||||
|  | .globl cif~,cuf~ | ||||||
|  | .globl setint~,setfloat~ | ||||||
|  | 
 | ||||||
|  | cif~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	jsr	pc,setfloat~ | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 1:	jsr	pc,setint~ | ||||||
|  | 	movif	(sp)+,r0 | ||||||
|  | 	movf	r0,-(sp) | ||||||
|  | 	setl;seti
 | ||||||
|  | 	jmp	(r1) | ||||||
|  | cuf~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	jsr	pc,setfloat~ | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	cmp	r0,$02 | ||||||
|  | 	bne	1b | ||||||
|  | 	clr	-(sp) | ||||||
|  | 	mov	$04,r0 | ||||||
|  | 	br	1b | ||||||
							
								
								
									
										23
									
								
								mach/pdp/libem/cii.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								mach/pdp/libem/cii.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | ||||||
|  | .text | ||||||
|  | .globl cii~ | ||||||
|  | .globl save1~ | ||||||
|  | 
 | ||||||
|  | /convert int to int | ||||||
|  | / 1 byte -> ? : sign extension | ||||||
|  | cii~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	sub	(sp)+,r0 | ||||||
|  | 	ble	1f | ||||||
|  | 	asr	r0 | ||||||
|  | 	bcc	2f | ||||||
|  | 	movb	(sp),r1 | ||||||
|  | 	mov	r1,(sp) | ||||||
|  | 2:	tst	r0 | ||||||
|  | 	beq	3f | ||||||
|  | 	tst	(sp) | ||||||
|  | 4:	sxt	-(sp) | ||||||
|  | 	sob	r0,4b | ||||||
|  | 3:	jmp	*save1~ | ||||||
|  | 1:	sub	r0,sp | ||||||
|  | 	jmp	*save1~ | ||||||
							
								
								
									
										13
									
								
								mach/pdp/libem/ciu.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								mach/pdp/libem/ciu.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | .text | ||||||
|  | .globl cuu~ | ||||||
|  | cuu~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	sub	(sp)+,r0 | ||||||
|  | 	ble	1f | ||||||
|  | 	asr	r0 | ||||||
|  | 2:	clr	-(sp) | ||||||
|  | 	sob	r0,2b | ||||||
|  | 	jmp	(r1) | ||||||
|  | 1:	sub	r0,sp | ||||||
|  | 	jmp	(r1) | ||||||
							
								
								
									
										19
									
								
								mach/pdp/libem/cmf.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								mach/pdp/libem/cmf.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | ||||||
|  | .text | ||||||
|  | .globl cmf~ | ||||||
|  | .globl setfloat~ | ||||||
|  | 
 | ||||||
|  | cmf~: | ||||||
|  | 	jsr	pc,setfloat~ | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	movf	(sp)+,r0 | ||||||
|  | 	movf	(sp)+,r1 | ||||||
|  | 	clr	r0 | ||||||
|  | 	cmpf	r0,r1 | ||||||
|  | 	setl | ||||||
|  | 	cfcc | ||||||
|  | 	beq	1f | ||||||
|  | 	blt	2f | ||||||
|  | 	dec	r0 | ||||||
|  | 	jmp	(r1) | ||||||
|  | 2:	inc	r0 | ||||||
|  | 1:	jmp	(r1) | ||||||
							
								
								
									
										17
									
								
								mach/pdp/libem/cmi.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								mach/pdp/libem/cmi.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | ||||||
|  | .text | ||||||
|  | .globl cmi~ | ||||||
|  | .globl cmi4~,unknown~ | ||||||
|  | 
 | ||||||
|  | / Size in r0 | ||||||
|  | cmi~: | ||||||
|  | 	cmp	r0,$02 | ||||||
|  | 	bne	1f | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	sub	(sp)+,r0 | ||||||
|  | 	neg	r0 | ||||||
|  | 	jmp	(r1) | ||||||
|  | 1:	cmp	r0,$04 | ||||||
|  | 	bne	2f | ||||||
|  | 	jmp	cmi4~ | ||||||
|  | 2:	jmp	unknown~ | ||||||
							
								
								
									
										21
									
								
								mach/pdp/libem/cmi4.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								mach/pdp/libem/cmi4.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | ||||||
|  | .text | ||||||
|  | .globl cmi4~ | ||||||
|  | .globl save1~ | ||||||
|  | 
 | ||||||
|  | cmi4~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	clr	r0 | ||||||
|  | 	cmp	(sp),4(sp) | ||||||
|  | 	bgt	1f | ||||||
|  | 	blt	2f | ||||||
|  | 	cmp	2(sp),6(sp) | ||||||
|  | 	bhi	1f | ||||||
|  | 	beq	3f | ||||||
|  | 2: | ||||||
|  | 	inc	r0 | ||||||
|  | 	br	3f | ||||||
|  | 1: | ||||||
|  | 	dec	r0 | ||||||
|  | 3: | ||||||
|  | 	add	$10,sp | ||||||
|  | 	jmp	(r1) | ||||||
							
								
								
									
										16
									
								
								mach/pdp/libem/cms.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								mach/pdp/libem/cms.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | ||||||
|  | .text | ||||||
|  | .globl cms~ | ||||||
|  | .globl save~,retu~ | ||||||
|  | 
 | ||||||
|  | cms~: | ||||||
|  | 	jsr	pc,save~ | ||||||
|  | 	mov	r0,r2 | ||||||
|  | 	add	sp,r2 | ||||||
|  | 	mov	r2,r4 | ||||||
|  | 	add	r0,r4 | ||||||
|  | 	asr	r0 | ||||||
|  | 2:	cmp	(sp)+,(r2)+ | ||||||
|  | 	bne	1f | ||||||
|  | 	sob	r0,2b | ||||||
|  | 1:	mov	r4,sp | ||||||
|  | 	jmp	retu~ | ||||||
							
								
								
									
										22
									
								
								mach/pdp/libem/cmu.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								mach/pdp/libem/cmu.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | ||||||
|  | .text | ||||||
|  | .globl cmu~ | ||||||
|  | .globl unknown~,cmu4~ | ||||||
|  | 
 | ||||||
|  | cmu~: | ||||||
|  | 	cmp	r0,$02 | ||||||
|  | 	bne	3f | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	clr	r0 | ||||||
|  | 	cmp	(sp)+,(sp)+ | ||||||
|  | 	beq	2f | ||||||
|  | 	bhi	1f | ||||||
|  | 	inc	r0 | ||||||
|  | 	br	2f | ||||||
|  | 1: | ||||||
|  | 	dec	r0 | ||||||
|  | 2: | ||||||
|  | 	jmp	(r1) | ||||||
|  | 3:	cmp	r0,$04 | ||||||
|  | 	bne	2f | ||||||
|  | 	jmp	cmu4~ | ||||||
|  | 2:	jmp	unknown~ | ||||||
							
								
								
									
										20
									
								
								mach/pdp/libem/cmu4.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								mach/pdp/libem/cmu4.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | ||||||
|  | 	.text | ||||||
|  | 	.globl	cmu4~ | ||||||
|  | 	.globl	save~,retu~ | ||||||
|  | cmu4~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	clr	r0 | ||||||
|  | 	cmp	(sp),4(sp) | ||||||
|  | 	bhi	1f | ||||||
|  | 	blo	2f | ||||||
|  | 	cmp	2(sp),6(sp) | ||||||
|  | 	bhi	1f | ||||||
|  | 	beq	3f | ||||||
|  | 2: | ||||||
|  | 	inc	r0 | ||||||
|  | 	br	3f | ||||||
|  | 1: | ||||||
|  | 	dec	r0 | ||||||
|  | 3: | ||||||
|  | 	add	$10,sp | ||||||
|  | 	jmp	(r1) | ||||||
							
								
								
									
										21
									
								
								mach/pdp/libem/csa.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								mach/pdp/libem/csa.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | ||||||
|  | .text | ||||||
|  | .globl csa~ | ||||||
|  | .globl fat~ | ||||||
|  | 
 | ||||||
|  | ECASE	= 20. | ||||||
|  | 
 | ||||||
|  | csa~: | ||||||
|  | 	sub	02(r0),r1 | ||||||
|  | 	blt	1f | ||||||
|  | 	cmp	04(r0),r1 | ||||||
|  | 	blo	1f | ||||||
|  | 	asl	r1 | ||||||
|  | 	add	r1,r0 | ||||||
|  | 	mov	06(r0),r1 | ||||||
|  | 	beq	2f | ||||||
|  | 	jmp	(r1) | ||||||
|  | 1:	mov	(r0),r0 | ||||||
|  | 	beq	2f | ||||||
|  | 	jmp	(r0) | ||||||
|  | 2:	mov	$ECASE,-(sp) | ||||||
|  | 	jmp	fat~ | ||||||
							
								
								
									
										25
									
								
								mach/pdp/libem/csb.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								mach/pdp/libem/csb.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | ||||||
|  | .text | ||||||
|  | .globl csb~ | ||||||
|  | .globl fat~ | ||||||
|  | 
 | ||||||
|  | ECASE	= 20. | ||||||
|  | 
 | ||||||
|  | csb~: | ||||||
|  | 	mov	r3,-(sp) | ||||||
|  | 	mov	(r0)+,-(sp) | ||||||
|  | 	mov	(r0)+,r3 | ||||||
|  | 	beq	1f | ||||||
|  | 3:	cmp	(r0)+,r1 | ||||||
|  | 	beq	2f | ||||||
|  | 	tst	(r0)+ | ||||||
|  | 	sob	r3,3b | ||||||
|  | 1:	mov	(sp)+,r1 | ||||||
|  | 	br	4f | ||||||
|  | 2:	tst	(sp)+ | ||||||
|  | 	mov	(r0),r1 | ||||||
|  | 4:	beq	5f | ||||||
|  | 	mov	(sp)+,r3 | ||||||
|  | 	jmp	(r1) | ||||||
|  | 5:	mov	(sp)+,r3 | ||||||
|  | 	mov	$ECASE,-(sp) | ||||||
|  | 	jmp	fat~ | ||||||
							
								
								
									
										12
									
								
								mach/pdp/libem/dup.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								mach/pdp/libem/dup.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | ||||||
|  | .text | ||||||
|  | .globl dup~ | ||||||
|  | .globl save1~ | ||||||
|  | 
 | ||||||
|  | dup~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	mov	sp,r1 | ||||||
|  | 	add	r0,r1 | ||||||
|  | 	asr	r0 | ||||||
|  | 1:	mov	-(r1),-(sp) | ||||||
|  | 	sob	r0,1b | ||||||
|  | 	jmp	*save1~ | ||||||
							
								
								
									
										13
									
								
								mach/pdp/libem/dvf.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								mach/pdp/libem/dvf.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | .text | ||||||
|  | .globl dvf~ | ||||||
|  | .globl setfloat~ | ||||||
|  | 
 | ||||||
|  | dvf~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	jsr	pc,setfloat~ | ||||||
|  | 	movf	(sp)+,r0 | ||||||
|  | 	movf	(sp)+,r1 | ||||||
|  | 	divf	r0,r1 | ||||||
|  | 	movf	r1,-(sp) | ||||||
|  | 	setl | ||||||
|  | 	jmp	(r1) | ||||||
							
								
								
									
										19
									
								
								mach/pdp/libem/dvi.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								mach/pdp/libem/dvi.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | ||||||
|  | .text | ||||||
|  | .globl dvi~ | ||||||
|  | .globl save1~,unknown~,dvi4~ | ||||||
|  | 
 | ||||||
|  | dvi~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	cmp	r0,$04 | ||||||
|  | 	bgt	1f | ||||||
|  | 	beq	2f | ||||||
|  | 	mov	02(sp),r1 | ||||||
|  | 	sxt	r0 | ||||||
|  | 	div	(sp)+,r0 | ||||||
|  | 	mov	r0,(sp) | ||||||
|  | 	br	3f | ||||||
|  | 2:	jsr	pc,dvi4~ | ||||||
|  | 	mov	r1,-(sp) | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 3:	jmp	*save1~ | ||||||
|  | 1:	jmp	unknown~ | ||||||
							
								
								
									
										81
									
								
								mach/pdp/libem/dvi4.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								mach/pdp/libem/dvi4.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,81 @@ | ||||||
|  | .text | ||||||
|  | .globl dvi4~ | ||||||
|  | .globl save~,retu~ | ||||||
|  | 
 | ||||||
|  | dvi4~: | ||||||
|  | 	jsr	pc,save~ | ||||||
|  | 	mov	02(sp),r3 | ||||||
|  | 	sxt	r4 | ||||||
|  | 	bpl	1f | ||||||
|  | 	neg	r3 | ||||||
|  | 1:	cmp	r4,(sp) | ||||||
|  | 	bne	hardldiv | ||||||
|  | 	mov	06(sp),r2 | ||||||
|  | 	mov	04(sp),r1 | ||||||
|  | 	bge	2f | ||||||
|  | 	neg	r1 | ||||||
|  | 	neg	r2 | ||||||
|  | 	sbc	r1 | ||||||
|  | 	com	r4 | ||||||
|  | 2:	mov	r4,-(sp) | ||||||
|  | 	clr	r0 | ||||||
|  | 	div	r3,r0 | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	mov	r1,r0 | ||||||
|  | 	mov	r1,r4 | ||||||
|  | 	mov	r2,r1 | ||||||
|  | 	div	r3,r0 | ||||||
|  | 	bvc	3f | ||||||
|  | 	mov	r2,r1 | ||||||
|  | 	mov	r4,r0 | ||||||
|  | 	sub	r3,r0 | ||||||
|  | 	div	r3,r0 | ||||||
|  | 	tst	r1 | ||||||
|  | 	sxt	r1 | ||||||
|  | 	add	r1,r0 | ||||||
|  | 3:	mov	r0,r1 | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	br	4f | ||||||
|  | hardldiv: | ||||||
|  | 	clr	-(sp) | ||||||
|  | 	mov	010(sp),r2 | ||||||
|  | 	mov	06(sp),r1 | ||||||
|  | 	bpl	5f | ||||||
|  | 	com	(sp) | ||||||
|  | 	neg	r1 | ||||||
|  | 	neg	r2 | ||||||
|  | 	sbc	r1 | ||||||
|  | 5:	clr	r0 | ||||||
|  | 	mov	02(sp),r3 | ||||||
|  | 	bge	6f | ||||||
|  | 	neg	r3 | ||||||
|  | 	neg	04(sp) | ||||||
|  | 	sbc	r3 | ||||||
|  | 	com	(sp) | ||||||
|  | 6:	mov	$16.,r4 | ||||||
|  | 9:	clc | ||||||
|  | 	rol	r2 | ||||||
|  | 	rol	r1 | ||||||
|  | 	rol	r0 | ||||||
|  | 	cmp	r3,r0 | ||||||
|  | 	bhi	7f | ||||||
|  | 	bcs	8f | ||||||
|  | 	cmp	04(sp),r1 | ||||||
|  | 	blos	8f | ||||||
|  | 7:	sob	r4,9b | ||||||
|  | 	br	1f | ||||||
|  | 8:	sub	04(sp),r1 | ||||||
|  | 	sbc	r0 | ||||||
|  | 	sub	r3,r0 | ||||||
|  | 	inc	r2 | ||||||
|  | 	sob	r4,9b | ||||||
|  | 1: | ||||||
|  | 	mov	r2,r1 | ||||||
|  | 	clr	r0 | ||||||
|  | 4:	tst	(sp)+ | ||||||
|  | 	beq	1f | ||||||
|  | 	neg	r0 | ||||||
|  | 	neg	r1 | ||||||
|  | 	sbc	r0 | ||||||
|  | 1:	add	$010,sp | ||||||
|  | 	jmp	retu~ | ||||||
							
								
								
									
										17
									
								
								mach/pdp/libem/dvu.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								mach/pdp/libem/dvu.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | ||||||
|  | .text | ||||||
|  | .globl dvu~ | ||||||
|  | .globl save1~,unknown~,dvu4~,dvu2~ | ||||||
|  | 
 | ||||||
|  | dvu~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	cmp	r0,$04 | ||||||
|  | 	bgt	1f | ||||||
|  | 	beq	2f | ||||||
|  | 	jsr	pc,dvu2~ | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	br	3f | ||||||
|  | 2:	jsr	pc,dvu4~ | ||||||
|  | 	mov	r1,-(sp) | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 3:	jmp	*save1~ | ||||||
|  | 1:	jmp	unknown~ | ||||||
							
								
								
									
										15
									
								
								mach/pdp/libem/dvu2.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								mach/pdp/libem/dvu2.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | ||||||
|  | .text | ||||||
|  | .globl dvu2~ | ||||||
|  | dvu2~: | ||||||
|  | 	clr	r0 | ||||||
|  | 	mov	04(sp),r1 | ||||||
|  | 	tst	02(sp) | ||||||
|  | 	blt	1f | ||||||
|  | 	div	02(sp),r0 | ||||||
|  | 2:	mov	(sp)+,r1 | ||||||
|  | 	add	$04,sp | ||||||
|  | 	jmp	(r1) | ||||||
|  | 1:	cmp	02(sp),r1 | ||||||
|  | 	bhi	2b | ||||||
|  | 	inc	r0 | ||||||
|  | 	br	2b | ||||||
							
								
								
									
										61
									
								
								mach/pdp/libem/dvu4.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								mach/pdp/libem/dvu4.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,61 @@ | ||||||
|  | .text | ||||||
|  | .globl dvu4~ | ||||||
|  | .globl save~,retu~ | ||||||
|  | 
 | ||||||
|  | dvu4~: | ||||||
|  | 	jsr	pc,save~ | ||||||
|  | 	clr	r0 | ||||||
|  | 	tst	(sp) | ||||||
|  | 	bne	harddvu4 | ||||||
|  | 	tst	02(sp) | ||||||
|  | 	blt	harddvu4 | ||||||
|  | 	mov	06(sp),r2 | ||||||
|  | 	mov	04(sp),r1 | ||||||
|  | 	mov	02(sp),r3 | ||||||
|  | 	div	r3,r0 | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	mov	r1,r0 | ||||||
|  | 	mov	r1,r4 | ||||||
|  | 	mov	r2,r1 | ||||||
|  | 	div	r3,r0 | ||||||
|  | 	bvc	1f | ||||||
|  | 	mov	r2,r1 | ||||||
|  | 	mov	r4,r0 | ||||||
|  | 	sub	r3,r0 | ||||||
|  | 	div	r3,r0 | ||||||
|  | 	tst	r1 | ||||||
|  | 	sxt	r1 | ||||||
|  | 	add	r1,r0 | ||||||
|  | 1:	mov	r0,r1 | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	br	2f | ||||||
|  | harddvu4: | ||||||
|  | 	mov	06(sp),r2 | ||||||
|  | 	mov	04(sp),r1 | ||||||
|  | 	mov	(sp),r3 | ||||||
|  | 	mov	$17.,r4 | ||||||
|  | 	br	3f | ||||||
|  | 6:	rol	r2 | ||||||
|  | 	rol	r1 | ||||||
|  | 	rol	r0 | ||||||
|  | 3:	cmp	r3,r0 | ||||||
|  | 	bhi	4f | ||||||
|  | 	blo	5f | ||||||
|  | 	cmp	02(sp),r1 | ||||||
|  | 	blos	5f | ||||||
|  | 4:	clc | ||||||
|  | 	sob	r4,6b | ||||||
|  | 	br	7f | ||||||
|  | 5:	sub	02(sp),r1 | ||||||
|  | 	sbc	r0 | ||||||
|  | 	sub	r3,r0 | ||||||
|  | 	sec | ||||||
|  | 	sob	r4,6b | ||||||
|  | 7:	rol	r2 | ||||||
|  | 	bcc	8f | ||||||
|  | 	mov	$01,r0 | ||||||
|  | 	br	9f | ||||||
|  | 8:	clr	r0 | ||||||
|  | 9:	mov	r2,r1 | ||||||
|  | 2:	add	$010,sp | ||||||
|  | 	jmp	retu~ | ||||||
							
								
								
									
										8
									
								
								mach/pdp/libem/eret.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								mach/pdp/libem/eret.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,8 @@ | ||||||
|  | 	.globl eret
 | ||||||
|  | 
 | ||||||
|  | eret: | ||||||
|  | 	mov r5,sp | ||||||
|  | 	mov (sp)+,r5 | ||||||
|  | 	mov (sp)+,r4 | ||||||
|  | 	mov (sp)+,r2 | ||||||
|  | 	rts pc | ||||||
							
								
								
									
										18
									
								
								mach/pdp/libem/exg.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								mach/pdp/libem/exg.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | ||||||
|  | 	.text | ||||||
|  | 	.globl exg~ | ||||||
|  | exg~:	jsr pc,save~ | ||||||
|  | 	mov sp,r4 | ||||||
|  | 	sub r0,sp | ||||||
|  | 	mov sp,r3 | ||||||
|  | 	mov r0,r1 | ||||||
|  | 1: | ||||||
|  | 	mov (r4)+,(r3)+ | ||||||
|  | 	sob r0,1b | ||||||
|  | 	asr r1 | ||||||
|  | 	mov sp,r4 | ||||||
|  | 1: | ||||||
|  | 	mov (r4)+,(r3)+ | ||||||
|  | 	sob r1,1b | ||||||
|  | 	mov r4,sp | ||||||
|  | 	jmp retu~ | ||||||
|  | 
 | ||||||
							
								
								
									
										13
									
								
								mach/pdp/libem/fef.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								mach/pdp/libem/fef.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | .text | ||||||
|  | .globl fef~ | ||||||
|  | .globl setfloat~ | ||||||
|  | 
 | ||||||
|  | fef~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	jsr	pc,setfloat~ | ||||||
|  | 	movf	(sp),r0 | ||||||
|  | 	movei	r0,-(sp) | ||||||
|  | 	movie	$0,r0 | ||||||
|  | 	movf	r0,02(sp) | ||||||
|  | 	setl | ||||||
|  | 	jmp	(r1) | ||||||
							
								
								
									
										13
									
								
								mach/pdp/libem/fif.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								mach/pdp/libem/fif.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | .text | ||||||
|  | .globl fif~ | ||||||
|  | .globl setfloat~ | ||||||
|  | 
 | ||||||
|  | fif~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	jsr	pc,setfloat~ | ||||||
|  | 	movf	(sp)+,r0 | ||||||
|  | 	modf	(sp)+,r0 | ||||||
|  | 	movf	r0,-(sp) | ||||||
|  | 	movf	r1,-(sp) | ||||||
|  | 	setl | ||||||
|  | 	jmp	(r1) | ||||||
							
								
								
									
										17
									
								
								mach/pdp/libem/gto.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								mach/pdp/libem/gto.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | ||||||
|  | .text | ||||||
|  | .globl gto~ | ||||||
|  | 
 | ||||||
|  | gto~: | ||||||
|  | ;	mov     (sp)+,r4
 | ||||||
|  | ;	mov     4(r4),r5
 | ||||||
|  | ;	mov     2(r4),sp
 | ||||||
|  | ;	jmp     *(r4)
 | ||||||
|  | 
 | ||||||
|  | 	mov	(sp)+,r3 | ||||||
|  | 1:	cmp	4(r3),r5 | ||||||
|  | 	jeq	2f | ||||||
|  | 	mov	2(r5),r4 | ||||||
|  | 	mov	4(r5),r2 | ||||||
|  | 	br	1b | ||||||
|  | 2:	mov	2(r3),sp | ||||||
|  | 	jmp	*(r3) | ||||||
							
								
								
									
										75
									
								
								mach/pdp/libem/head_em.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								mach/pdp/libem/head_em.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,75 @@ | ||||||
|  | 	.globl  LINO_AD,FILN_AD | ||||||
|  | 	.globl  ERANGE,ESET,EHEAP,EILLINS,ECASE | ||||||
|  | 	.globl  hol0,trppc~,trpim~,reghp~ | ||||||
|  | 
 | ||||||
|  | rti     = 2 | ||||||
|  | stst    = 170300 ^ tst | ||||||
|  | 
 | ||||||
|  | .float  = 1             / this should be parameterized somehow | ||||||
|  | .hardfp = 1             / only relevant if .float on | ||||||
|  | 
 | ||||||
|  | LINO_AD = 0. | ||||||
|  | FILN_AD = 4. | ||||||
|  | 
 | ||||||
|  | ERANGE  = 1. | ||||||
|  | ESET    = 2. | ||||||
|  | EFOVFL  = 4. | ||||||
|  | EFUNFL  = 5. | ||||||
|  | EFDIVZ  = 7. | ||||||
|  | EFUND   = 9. | ||||||
|  | ECONV   = 10. | ||||||
|  | EHEAP   = 17. | ||||||
|  | EILLINS = 18. | ||||||
|  | ECASE   = 20. | ||||||
|  | 
 | ||||||
|  | .if .float | ||||||
|  | /       .globl  fltused;        fltused:
 | ||||||
|  | .if 1 - .hardfp | ||||||
|  | /	sys     48.;4.;fptrap	/ if not commented it will appear as undefined
 | ||||||
|  | .endif | ||||||
|  | 	sys     48.;8.;sig8
 | ||||||
|  | 	ldfps   $7600 | ||||||
|  | .endif | ||||||
|  | 	mov     2(sp),r0 | ||||||
|  | 	clr     -2(r0) | ||||||
|  | 	mov     sp,r0 | ||||||
|  | 	sub     $4,sp | ||||||
|  | 	mov     4(sp),(sp) | ||||||
|  | 	tst     (r0)+ | ||||||
|  | 	mov     r0,2(sp) | ||||||
|  | 1: | ||||||
|  | 	tst     (r0)+ | ||||||
|  | 	bne     1b | ||||||
|  | 	cmp     r0,*2(sp) | ||||||
|  | 	blo     1f | ||||||
|  | 	tst     -(r0) | ||||||
|  | 1: | ||||||
|  | 	mov     r0,4(sp) | ||||||
|  | 	jsr     pc,_m_a_i_n | ||||||
|  | / next two lines for as long as tail needs printf | ||||||
|  | /	mov     r0,-(sp) | ||||||
|  | /	jsr     pc,*$_exit | ||||||
|  | 	sys     1. | ||||||
|  | 
 | ||||||
|  | 	.data | ||||||
|  | hol0:   0;0     / line no
 | ||||||
|  | 	0;0     / file
 | ||||||
|  | trppc~: 0 | ||||||
|  | trpim~: 0 | ||||||
|  | reghp~: _end | ||||||
|  | 
 | ||||||
|  | 	.text | ||||||
|  | sig8: | ||||||
|  | .if .float | ||||||
|  | 	mov     r0,-(sp) | ||||||
|  | 	stst    r0 | ||||||
|  | 	mov     1f(r0),-(sp) | ||||||
|  | 	jsr     pc,trp~ | ||||||
|  | 	sys     48.;8.;sig8
 | ||||||
|  | 	mov     (sp)+,r0 | ||||||
|  | 	rti | ||||||
|  | 
 | ||||||
|  | 	.data | ||||||
|  | 1:      EILLINS; EILLINS; EFDIVZ; ECONV; EFOVFL; EFUNFL; EFUND; EILLINS
 | ||||||
|  | 	.text | ||||||
|  | .endif | ||||||
							
								
								
									
										10
									
								
								mach/pdp/libem/hlt.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								mach/pdp/libem/hlt.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | ||||||
|  | .text | ||||||
|  | .globl hlt~ | ||||||
|  | 
 | ||||||
|  | exit	= 1 | ||||||
|  | 
 | ||||||
|  | hlt~: | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	bne	1f | ||||||
|  | 	sys	exit | ||||||
|  | 1:	4 | ||||||
							
								
								
									
										18
									
								
								mach/pdp/libem/iaar.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								mach/pdp/libem/iaar.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | ||||||
|  | .text | ||||||
|  | .globl iaar~ | ||||||
|  | .globl aar~,trp~ | ||||||
|  | 
 | ||||||
|  | EILLINS = 18. | ||||||
|  | 
 | ||||||
|  | iaar~: | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	cmp	(sp)+,$02 | ||||||
|  | 	bne	1f | ||||||
|  | 	mov	02(sp),r1 | ||||||
|  | 	mov	r0,02(sp) | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	jmp	aar~ | ||||||
|  | 1:	mov	$EILLINS,-(sp) | ||||||
|  | 	jsr	pc,trp~ | ||||||
|  | 	add	$06,sp | ||||||
|  | 	jmp	(r0) | ||||||
							
								
								
									
										18
									
								
								mach/pdp/libem/ilar.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								mach/pdp/libem/ilar.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | ||||||
|  | .text | ||||||
|  | .globl ilar~ | ||||||
|  | .globl lar~,trp~ | ||||||
|  | 
 | ||||||
|  | EILLINS = 18. | ||||||
|  | 
 | ||||||
|  | ilar~: | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	cmp	(sp)+,$02 | ||||||
|  | 	bne	1f | ||||||
|  | 	mov	02(sp),r1 | ||||||
|  | 	mov	r0,02(sp) | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	jmp	lar~ | ||||||
|  | 1:	mov	$EILLINS,-(sp) | ||||||
|  | 	jsr	pc,trp~ | ||||||
|  | 	add	$06,sp | ||||||
|  | 	jmp	(r0) | ||||||
							
								
								
									
										22
									
								
								mach/pdp/libem/inn.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								mach/pdp/libem/inn.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | ||||||
|  | .text | ||||||
|  | .globl inn~ | ||||||
|  | 
 | ||||||
|  | inn~: | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	clr	r0 | ||||||
|  | 	div	$010,r0 | ||||||
|  | 	cmp	r0,(sp) | ||||||
|  | 	bcc	1f | ||||||
|  | 	add	sp,r0 | ||||||
|  | 	add	$4,r0 | ||||||
|  | 	bitb	bits(r1),(r0) | ||||||
|  | 	beq	1f | ||||||
|  | 	mov	$01,r0 | ||||||
|  | 	br	2f | ||||||
|  | 1:	clr	r0 | ||||||
|  | 2:	mov	02(sp),r1 | ||||||
|  | 	add	(sp)+,sp | ||||||
|  | 	tst	(sp)+ | ||||||
|  | 	jmp	(r1) | ||||||
|  | .data | ||||||
|  | bits:	.byte	1,2,4,10,20,40,100,200 | ||||||
							
								
								
									
										18
									
								
								mach/pdp/libem/isar.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								mach/pdp/libem/isar.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | ||||||
|  | .text | ||||||
|  | .globl isar~ | ||||||
|  | .globl sar~,trp~ | ||||||
|  | 
 | ||||||
|  | EILLINS = 18. | ||||||
|  | 
 | ||||||
|  | isar~: | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	cmp	(sp)+,$02 | ||||||
|  | 	bne	1f | ||||||
|  | 	mov	02(sp),r1 | ||||||
|  | 	mov	r0,02(sp) | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	jmp	sar~ | ||||||
|  | 1:	mov	$EILLINS,-(sp) | ||||||
|  | 	jsr	pc,trp~ | ||||||
|  | 	add	$06,sp | ||||||
|  | 	jmp	(r0) | ||||||
							
								
								
									
										20
									
								
								mach/pdp/libem/lar.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								mach/pdp/libem/lar.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | ||||||
|  | .text | ||||||
|  | .globl lar~ | ||||||
|  | .globl save1~ | ||||||
|  | 
 | ||||||
|  | lar~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	sub	(r0),r1 | ||||||
|  | 	mov	04(r0),r0 | ||||||
|  | 	mul	r0,r1 | ||||||
|  | 	add	(sp)+,r1 | ||||||
|  | 	add	r0,r1 | ||||||
|  | 	asr	r0 | ||||||
|  | 	beq	1f | ||||||
|  | 2:	mov	-(r1),-(sp) | ||||||
|  | 	sob	r0,2b | ||||||
|  | 	jmp	*save1~ | ||||||
|  | 1:	clr	r0 | ||||||
|  | 	bisb	-(r1),r0 | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	jmp	*save1~ | ||||||
							
								
								
									
										16
									
								
								mach/pdp/libem/los2.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								mach/pdp/libem/los2.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | ||||||
|  | .text | ||||||
|  | .globl los2~ | ||||||
|  | .globl save1~ | ||||||
|  | 
 | ||||||
|  | los2~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	cmp	r0,$01 | ||||||
|  | 	bne	1f | ||||||
|  | 	clr	-(sp) | ||||||
|  | 	bisb	(r1),(sp) | ||||||
|  | 	jmp	*save1~ | ||||||
|  | 1:	add	r0,r1 | ||||||
|  | 	asr	r0 | ||||||
|  | 2:	mov	-(r1),-(sp) | ||||||
|  | 	sob	r0,2b | ||||||
|  | 	jmp	*save1~ | ||||||
							
								
								
									
										12
									
								
								mach/pdp/libem/mlf.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								mach/pdp/libem/mlf.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | ||||||
|  | .text | ||||||
|  | .globl mlf~ | ||||||
|  | .globl setfloat~ | ||||||
|  | 
 | ||||||
|  | mlf~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	jsr	pc,setfloat~ | ||||||
|  | 	movf	(sp)+,r0 | ||||||
|  | 	mulf	(sp)+,r0 | ||||||
|  | 	movf	r0,-(sp) | ||||||
|  | 	setl | ||||||
|  | 	jmp	(r1) | ||||||
							
								
								
									
										19
									
								
								mach/pdp/libem/mli.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								mach/pdp/libem/mli.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | ||||||
|  | .text | ||||||
|  | .globl mli~ | ||||||
|  | .globl save1~,unknown~,mli4~ | ||||||
|  | 
 | ||||||
|  | mli~: | ||||||
|  | 	cmp	r0,$04 | ||||||
|  | 	bgt	1f | ||||||
|  | 	beq	2f | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	mul	(sp)+,r1 | ||||||
|  | 	mov	r1,-(sp) | ||||||
|  | 	jmp	(r0) | ||||||
|  | 2:	mov	(sp)+,save1~ | ||||||
|  | 	jsr	pc,mli4~ | ||||||
|  | 	mov	r1,-(sp) | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	jmp	*save1~ | ||||||
|  | 1:	jmp	unknown~ | ||||||
							
								
								
									
										19
									
								
								mach/pdp/libem/mli4.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								mach/pdp/libem/mli4.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | ||||||
|  | .text | ||||||
|  | .globl mli4~ | ||||||
|  | .globl save~,retu~ | ||||||
|  | 
 | ||||||
|  | mli4~: | ||||||
|  | 	jsr	pc,save~ | ||||||
|  | 	mov	02(sp),r2 | ||||||
|  | 	sxt	r1 | ||||||
|  | 	sub	(sp),r1 | ||||||
|  | 	mov	06(sp),r0 | ||||||
|  | 	sxt	r3 | ||||||
|  | 	sub	04(sp),r3 | ||||||
|  | 	mul	r0,r1 | ||||||
|  | 	mul	r2,r3 | ||||||
|  | 	add	r1,r3 | ||||||
|  | 	mul	r2,r0 | ||||||
|  | 	sub	r3,r0 | ||||||
|  | 	add	$010,sp | ||||||
|  | 	jmp	retu~ | ||||||
							
								
								
									
										19
									
								
								mach/pdp/libem/mlu.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								mach/pdp/libem/mlu.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | ||||||
|  | .text | ||||||
|  | .globl mlu~ | ||||||
|  | .globl save1~,unknown~,mlu4~ | ||||||
|  | 
 | ||||||
|  | mlu~: | ||||||
|  | 	cmp	r0,$04 | ||||||
|  | 	bgt	1f | ||||||
|  | 	beq	2f | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	mul	(sp)+,r1 | ||||||
|  | 	mov	r1,-(sp) | ||||||
|  | 	jmp	(r0) | ||||||
|  | 2:	mov	(sp)+,save1~ | ||||||
|  | 	jsr	pc,mlu4~ | ||||||
|  | 	mov	r1,-(sp) | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	jmp	*save1~ | ||||||
|  | 1:	jmp	unknown~ | ||||||
							
								
								
									
										23
									
								
								mach/pdp/libem/mlu4.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								mach/pdp/libem/mlu4.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | ||||||
|  | .text | ||||||
|  | .globl mlu4~ | ||||||
|  | .globl save~,retu~ | ||||||
|  | 
 | ||||||
|  | mlu4~: | ||||||
|  | 	jsr	pc,save~ | ||||||
|  | 	clr	r0 | ||||||
|  | 	mov	02(sp),r1 | ||||||
|  | 	mov	06(sp),r3 | ||||||
|  | 	mul	r3,r0 | ||||||
|  | 	tst	r3 | ||||||
|  | 	bge	1f | ||||||
|  | 	ashc	$15.,r0 | ||||||
|  | 1:	mov	02(sp),r3 | ||||||
|  | 	clr	r2 | ||||||
|  | 	mul	04(sp),r2 | ||||||
|  | 	add	r3,r0 | ||||||
|  | 	mov	06(sp),r3 | ||||||
|  | 	clr	r2 | ||||||
|  | 	mul	(sp),r2 | ||||||
|  | 	add	r3,r0 | ||||||
|  | 	add	$010,sp | ||||||
|  | 	jmp	retu~ | ||||||
							
								
								
									
										145
									
								
								mach/pdp/libem/mon.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										145
									
								
								mach/pdp/libem/mon.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,145 @@ | ||||||
|  | .text | ||||||
|  | .globl mon~ | ||||||
|  | .globl sigtrp~,save~,retu~,save1~ | ||||||
|  | 
 | ||||||
|  | indir	= 0 | ||||||
|  | fork	= 2 | ||||||
|  | getpid	= 20. | ||||||
|  | sigtrp	= 48. | ||||||
|  | EBADMON = 25. | ||||||
|  | 
 | ||||||
|  | HBMASK	= 0177400 | ||||||
|  | REG01M	= 030 | ||||||
|  | REG1M	= 020 | ||||||
|  | ERRMASK	= 040 | ||||||
|  | 
 | ||||||
|  | / Associated with every monitor call is a descriptor. | ||||||
|  | / The low order three bits describe how values are returned, | ||||||
|  | / the next two bits specify if arguments are expected in | ||||||
|  | / r0 and/or r1, the next bit is not used, and the next | ||||||
|  | / three bits specify the number of arguments disregarding | ||||||
|  | / arguments in registers. | ||||||
|  | 
 | ||||||
|  | mon~: | ||||||
|  | 	cmp	02(sp),$sigtrp | ||||||
|  | 	bne	1f | ||||||
|  | 	jmp	sigtrp~ | ||||||
|  | 1:	jsr	pc,save~ | ||||||
|  | 	mov	(sp)+,r4 | ||||||
|  | 	mov	r4,r2 | ||||||
|  | 	asl	r4 | ||||||
|  | 	mov	args(r4),r3 | ||||||
|  | 	mov	r3,r4 | ||||||
|  | 	bit	$ERRMASK,r4 | ||||||
|  | 	bne	err | ||||||
|  | 	cmp	r2,$fork | ||||||
|  | 	bne	2f | ||||||
|  | 	jbr	fork~ | ||||||
|  | 2:	bic	$HBMASK,r2 | ||||||
|  | 	bis	$sys,r2 | ||||||
|  | 	mov	r2,9f | ||||||
|  | 	bit	$REG01M,r3 | ||||||
|  | 	beq	1f | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	bit	$REG1M,r3 | ||||||
|  | 	beq	1f | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 1:	ash	$-6,r3 | ||||||
|  | 	beq	2f | ||||||
|  | 	mov	$[9f+2],r2 | ||||||
|  | 1:	mov	(sp)+,(r2)+ | ||||||
|  | 	sob	r3,1b | ||||||
|  | 2:	sys	indir ; 9f
 | ||||||
|  | 	bcs	2f | ||||||
|  | 	clr	r3 | ||||||
|  | 4:	asr	r4 | ||||||
|  | 	bcc	1f | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 1:	asr	r4 | ||||||
|  | 	bcc	1f | ||||||
|  | 	mov	r1,-(sp) | ||||||
|  | 1:	asr	r4 | ||||||
|  | 	bcc	1f | ||||||
|  | 	clr	-(sp) | ||||||
|  | 1:	jmp	retu~ | ||||||
|  | 2:	mov	r0,-(sp) | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	jmp	retu~ | ||||||
|  | fork~: | ||||||
|  | 	sys	fork | ||||||
|  | 	br	1f | ||||||
|  | 	bcs	2b | ||||||
|  | 	clr	r1 | ||||||
|  | 	br	4b | ||||||
|  | 1:	mov	$1,r1 | ||||||
|  | 	br	4b | ||||||
|  | err: | ||||||
|  | 	mov	$EBADMON,-(sp) | ||||||
|  | 	jsr	pc,trp~ | ||||||
|  | 	tst	(sp)+ | ||||||
|  | 	jmp	retu~ | ||||||
|  | .data | ||||||
|  | .even | ||||||
|  | 9: .=.+12. | ||||||
|  | args:	ERRMASK	/ 0 : error | ||||||
|  | 	010	/ 1 : exit(st); ---
 | ||||||
|  | 	07	/ 2 : fork(); e10
 | ||||||
|  | 	0215	/ 3 : read(addr,nb,fild); e-0
 | ||||||
|  | 	0215	/ 4 : write(addr,nb,fild); e-0
 | ||||||
|  | 	0205	/ 5 : open(str,flag); e-0
 | ||||||
|  | 	014	/ 6 : close(fild); e--
 | ||||||
|  | 	07	/ 7 : wait(); e10
 | ||||||
|  | 	0205	/ 8 : creat(str,mode); e-0
 | ||||||
|  | 	0204	/ 9 : link(str1,str2); e--
 | ||||||
|  | 	0104	/10 : unlink(str); e--
 | ||||||
|  | 	ERRMASK	/11 : error | ||||||
|  | 	0104	/12 : chdir(str); e--
 | ||||||
|  | 	03	/13 : time(); -10
 | ||||||
|  | 	0304	/14 : mknod(str,mode,addr); e--
 | ||||||
|  | 	0204	/15 : chmod(str,mode); e--
 | ||||||
|  | 	0304	/16 : chown(str,owner,grp); e--
 | ||||||
|  | 	ERRMASK	/17 : error | ||||||
|  | 	0204	/18 : stat(str,buf); e--
 | ||||||
|  | 	0217	/19 : lseek(high,low,fild); e10
 | ||||||
|  | 	01	/20 : getpid(); --0
 | ||||||
|  | 	0304	/21 : mount(str1,str2,fl); e--
 | ||||||
|  | 	0104	/22 : umount(str); e--
 | ||||||
|  | 	014	/23 : setuid(uid); e--
 | ||||||
|  | 	03	/24 : getuid(); -01
 | ||||||
|  | 	024	/25 : stime(high,low); e--
 | ||||||
|  | 	0315	/26 : ptrace(pid,addr,req,d); e-0
 | ||||||
|  | 	011	/27 : alarm(sec); --0
 | ||||||
|  | 	0114	/28 : fstat(buf,fild); e--
 | ||||||
|  | 	0	/29 : pause(); ---
 | ||||||
|  | 	0204	/30 : utime(str,timep); e--
 | ||||||
|  | 	ERRMASK	/31 : error | ||||||
|  | 	ERRMASK	/32 : error | ||||||
|  | 	0204	/33 : access(str,mode): e-- | ||||||
|  | 	010	/34 : nice(incr); ---
 | ||||||
|  | 	0100	/35 : ftime(bufp); ---
 | ||||||
|  | 	0	/36 : sync(); ---
 | ||||||
|  | 	0114	/37 : kill(sig,pid); e--
 | ||||||
|  | 	ERRMASK	/38 : error | ||||||
|  | 	ERRMASK	/39 : error | ||||||
|  | 	ERRMASK	/40 : error | ||||||
|  | 	025	/41 : dup(fild,newfild); e-0
 | ||||||
|  | 	07	/42 : pipe(); e10
 | ||||||
|  | 	0100	/43 : times(buf); ---
 | ||||||
|  | 	0400	/44 : profil(buff,siz,off,sc); ---
 | ||||||
|  | 	ERRMASK	/45 : error | ||||||
|  | 	014	/46 : setgid(gid); e--
 | ||||||
|  | 	03	/47 : getgid(); -01
 | ||||||
|  | 	0	/48 : sigtrp(trap,sig); e-0; SPECIAL TREATMENT
 | ||||||
|  | 	ERRMASK	/49 : error | ||||||
|  | 	ERRMASK	/50 : error | ||||||
|  | 	0104	/51 : acct(file); e--
 | ||||||
|  | 	0304	/52 : phys(seg,siz,phaddr); e--
 | ||||||
|  | 	0104	/53 : lock(flag); e--
 | ||||||
|  | 	0304	/54 : ioctl(fild,req,argp); e--
 | ||||||
|  | 	ERRMASK	/55 : error | ||||||
|  | 	0204	/56 : mpxcall(cmd,vec); e--
 | ||||||
|  | 	ERRMASK	/57 : error | ||||||
|  | 	ERRMASK	/58 : error | ||||||
|  | 	0304	/59 : exece(name,argv,envp); e--
 | ||||||
|  | 	0104	/60 : umask(complmode); e--
 | ||||||
|  | 	0104	/61 : chroot(str); e--
 | ||||||
							
								
								
									
										10
									
								
								mach/pdp/libem/ngf.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								mach/pdp/libem/ngf.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | ||||||
|  | .text | ||||||
|  | .globl ngf~ | ||||||
|  | .globl setfloat~ | ||||||
|  | 
 | ||||||
|  | ngf~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	jsr	pc,setfloat~ | ||||||
|  | 	negf	(sp) | ||||||
|  | 	setl | ||||||
|  | 	jmp	(r1) | ||||||
							
								
								
									
										17
									
								
								mach/pdp/libem/ngi.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								mach/pdp/libem/ngi.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | ||||||
|  | .text | ||||||
|  | .globl ngi~ | ||||||
|  | .globl unknown~ | ||||||
|  | 
 | ||||||
|  | ngi~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	cmp	r0,$02 | ||||||
|  | 	bgt	1f | ||||||
|  | 	neg	(sp) | ||||||
|  | 	jmp	(r1) | ||||||
|  | 1:	cmp	r0,$04 | ||||||
|  | 	bgt	2f | ||||||
|  | 	neg	(sp) | ||||||
|  | 	neg	02(sp) | ||||||
|  | 	sbc	(sp) | ||||||
|  | 	jmp	(r1) | ||||||
|  | 2:	jmp	unknown~ | ||||||
							
								
								
									
										12
									
								
								mach/pdp/libem/nop.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								mach/pdp/libem/nop.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | ||||||
|  | .text | ||||||
|  | .globl nop~ | ||||||
|  | .globl hol0,prf~ | ||||||
|  | 
 | ||||||
|  | nop~: | ||||||
|  | 	mov	hol0,-(sp) | ||||||
|  | 	mov	$fmt,-(sp) | ||||||
|  | 	jsr	pc,prf~ | ||||||
|  | 	add	$04,sp | ||||||
|  | 	rts	pc | ||||||
|  | .data | ||||||
|  | fmt:	<test %d\n\0> | ||||||
							
								
								
									
										33
									
								
								mach/pdp/libem/prf.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								mach/pdp/libem/prf.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,33 @@ | ||||||
|  | .text | ||||||
|  | .globl prf~ | ||||||
|  | .globl save~,retu~,hol0,_printf | ||||||
|  | 
 | ||||||
|  | prf~: | ||||||
|  | 	jsr	pc,save~ | ||||||
|  | 	mov	hol0,-(sp) | ||||||
|  | 	mov	hol0+4,r0 | ||||||
|  | 	beq	1f | ||||||
|  | 	mov	r0,r2 | ||||||
|  | 	mov	$40.,r1 | ||||||
|  | 3:	movb	(r2)+,r3 | ||||||
|  | 	beq	2f | ||||||
|  | 	cmpb	r3,$0177 | ||||||
|  | 	bge	1f | ||||||
|  | 	cmpb	r3,$040 | ||||||
|  | 	blt	1f | ||||||
|  | 	sob	r1,3b | ||||||
|  | 	clrb	(r2) | ||||||
|  | 2:	mov	sp,r1 | ||||||
|  | 	mov	r1,-(sp) | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	mov	$fmt,-(sp) | ||||||
|  | 	jsr	pc,_printf | ||||||
|  | 	add	$010,sp | ||||||
|  | 	jsr	pc,_printf | ||||||
|  | 	jmp	retu~ | ||||||
|  | 1:	mov	$name,r0 | ||||||
|  | 	br	2b | ||||||
|  | 
 | ||||||
|  | .data | ||||||
|  | fmt:	<"%s", sp = %d, line %d: \0> | ||||||
|  | name:	<_unknown file_\0> | ||||||
							
								
								
									
										62
									
								
								mach/pdp/libem/printf.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								mach/pdp/libem/printf.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,62 @@ | ||||||
|  | .text | ||||||
|  | .globl _printf
 | ||||||
|  | 
 | ||||||
|  | write	= 4 | ||||||
|  | 
 | ||||||
|  | _printf: | ||||||
|  | 	mov	r2,-(sp) | ||||||
|  | 	mov	r3,-(sp) | ||||||
|  | 	mov	r4,-(sp) | ||||||
|  | 	mov	sp,r3 | ||||||
|  | 	mov	$buff,r4 | ||||||
|  | 	add	$010,r3 | ||||||
|  | 	mov	(r3)+,r2 | ||||||
|  | prloop: | ||||||
|  | 	movb	(r2)+,r0 | ||||||
|  | 	beq	ready | ||||||
|  | 	cmpb	r0,$045 | ||||||
|  | 	bne	1f | ||||||
|  | 	movb	(r2)+,r0 | ||||||
|  | 	cmpb	r0,$0144 | ||||||
|  | 	beq	2f | ||||||
|  | 	cmpb	r0,$0163 | ||||||
|  | 	beq	3f | ||||||
|  | 1:	movb	r0,(r4)+ | ||||||
|  | 	br	prloop | ||||||
|  | 2:	mov	(r3)+,r1 | ||||||
|  | 	bge	4f | ||||||
|  | 	movb	$055,(r4)+ | ||||||
|  | 	neg	r1 | ||||||
|  | 4:	jsr	pc,printn | ||||||
|  | 	br	prloop | ||||||
|  | printn: | ||||||
|  | 	clr	r0 | ||||||
|  | 	div	$010,r0 | ||||||
|  | 	beq	5f | ||||||
|  | 	mov	r1,-(sp) | ||||||
|  | 	mov	r0,r1 | ||||||
|  | 	jsr	pc,printn | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 5:	add	$060,r1 | ||||||
|  | 	movb	r1,(r4)+ | ||||||
|  | 	rts	pc | ||||||
|  | 3:	mov	(r3)+,r1 | ||||||
|  | 7:	movb	(r1)+,r0 | ||||||
|  | 	bne	6f | ||||||
|  | 	br	prloop | ||||||
|  | 6:	movb	r0,(r4)+ | ||||||
|  | 	br	7b | ||||||
|  | ready: | ||||||
|  | 	movb	r0,(r4)+ | ||||||
|  | 	sub	$buff,r4 | ||||||
|  | 	mov	$01,r0 | ||||||
|  | 	mov	$buff,9f | ||||||
|  | 	mov	r4,9f+2 | ||||||
|  | 	sys	write | ||||||
|  | 9:	0;	0
 | ||||||
|  | 	mov	(sp)+,r4 | ||||||
|  | 	mov	(sp)+,r3 | ||||||
|  | 	mov	(sp)+,r2 | ||||||
|  | 	rts	pc | ||||||
|  | .data | ||||||
|  | buff:	.=.+256. | ||||||
							
								
								
									
										15
									
								
								mach/pdp/libem/rck.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								mach/pdp/libem/rck.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | ||||||
|  | .text | ||||||
|  | .globl rck~ | ||||||
|  | .globl trp~ | ||||||
|  | 
 | ||||||
|  | ERANGE	= 1 | ||||||
|  | 
 | ||||||
|  | rck~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	cmp	(sp),(r0) | ||||||
|  | 	blt	1f | ||||||
|  | 	cmp	(sp),02(r0) | ||||||
|  | 	ble	2f | ||||||
|  | 1:	mov	$ERANGE,-(sp) | ||||||
|  | 	jsr	pc,trp~ | ||||||
|  | 2:	jmp	(r1) | ||||||
							
								
								
									
										31
									
								
								mach/pdp/libem/ret.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								mach/pdp/libem/ret.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,31 @@ | ||||||
|  | .text | ||||||
|  | .globl ret~,lfr~,retar | ||||||
|  | .globl save1~ | ||||||
|  | .globl unknown~ | ||||||
|  | 
 | ||||||
|  | / Size in r0 | ||||||
|  | ret~: | ||||||
|  | 	mov	r0,r1 | ||||||
|  | 	beq	1f | ||||||
|  | 	asr	r1 | ||||||
|  | 	add	$retar,r0 | ||||||
|  | 	cmp	r0,$retend | ||||||
|  | 	bhi	9f | ||||||
|  | 3:	mov	(sp)+,-(r0) | ||||||
|  | 	sob	r1,3b | ||||||
|  | 1:	mov	r5,sp | ||||||
|  | 	mov	(sp)+,r5 | ||||||
|  | 	rts	pc | ||||||
|  | 9:	jmp	unknown~ | ||||||
|  | lfr~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	asr	r0 | ||||||
|  | 	beq	4f | ||||||
|  | 	mov	$retar,r1 | ||||||
|  | 5:	mov	(r1)+,-(sp) | ||||||
|  | 	sob	r0,5b | ||||||
|  | 4:	jmp	*save1~ | ||||||
|  | 
 | ||||||
|  | .data | ||||||
|  | retar:	.=.+16. | ||||||
|  | retend: | ||||||
							
								
								
									
										19
									
								
								mach/pdp/libem/rmi.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								mach/pdp/libem/rmi.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | ||||||
|  | .text | ||||||
|  | .globl rmi~ | ||||||
|  | .globl save1~,unknown~,rmi4~ | ||||||
|  | 
 | ||||||
|  | rmi~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	cmp	r0,$04 | ||||||
|  | 	bgt	1f | ||||||
|  | 	beq	2f | ||||||
|  | 	mov	02(sp),r1 | ||||||
|  | 	sxt	r0 | ||||||
|  | 	div	(sp)+,r0 | ||||||
|  | 	mov	r1,(sp) | ||||||
|  | 	br	3f | ||||||
|  | 2:	jsr	pc,rmi4~ | ||||||
|  | 	mov	r1,-(sp) | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 3:	jmp	*save1~ | ||||||
|  | 1:	jmp	unknown~ | ||||||
							
								
								
									
										75
									
								
								mach/pdp/libem/rmi4.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								mach/pdp/libem/rmi4.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,75 @@ | ||||||
|  | .text | ||||||
|  | .globl rmi4~ | ||||||
|  | .globl save~,retu~ | ||||||
|  | 
 | ||||||
|  | rmi4~: | ||||||
|  | 	jsr	pc,save~ | ||||||
|  | 	mov	02(sp),r3 | ||||||
|  | 	sxt	r4 | ||||||
|  | 	bpl	1f | ||||||
|  | 	neg	r3 | ||||||
|  | 1:	cmp	r4,(sp) | ||||||
|  | 	bne	hardrmi4 | ||||||
|  | 	mov	06(sp),r2 | ||||||
|  | 	mov	04(sp),r1 | ||||||
|  | 	mov	r1,r4 | ||||||
|  | 	bge	2f | ||||||
|  | 	neg	r1 | ||||||
|  | 	neg	r2 | ||||||
|  | 	sbc	r1 | ||||||
|  | 2:	mov	r4,-(sp) | ||||||
|  | 	clr	r0 | ||||||
|  | 	div	r3,r0 | ||||||
|  | 	mov	r1,r0 | ||||||
|  | 	mov	r1,r4 | ||||||
|  | 	mov	r2,r1 | ||||||
|  | 	div	r3,r0 | ||||||
|  | 	bvc	3f | ||||||
|  | 	mov	r2,r1 | ||||||
|  | 	mov	r4,r0 | ||||||
|  | 	sub	r3,r0 | ||||||
|  | 	div	r3,r0 | ||||||
|  | 	tst	r1 | ||||||
|  | 	beq	3f | ||||||
|  | 	add	r3,r1 | ||||||
|  | 3:	tst	(sp)+ | ||||||
|  | 	bpl	4f | ||||||
|  | 	neg	r1 | ||||||
|  | 4:	sxt	r0 | ||||||
|  | 	br	9f | ||||||
|  | hardrmi4: | ||||||
|  | 	mov	06(sp),r2 | ||||||
|  | 	mov	04(sp),r1 | ||||||
|  | 	bpl	5f | ||||||
|  | 	neg	r1 | ||||||
|  | 	neg	r2 | ||||||
|  | 	sbc	r1 | ||||||
|  | 5:	clr	r0 | ||||||
|  | 	mov	(sp),r3 | ||||||
|  | 	bge	6f | ||||||
|  | 	neg	r3 | ||||||
|  | 	neg	02(sp) | ||||||
|  | 	sbc	r3 | ||||||
|  | 6:	mov	$16.,r4 | ||||||
|  | 1:	clc | ||||||
|  | 	rol	r2 | ||||||
|  | 	rol	r1 | ||||||
|  | 	rol	r0 | ||||||
|  | 	cmp	r3,r0 | ||||||
|  | 	bhi	7f | ||||||
|  | 	bcs	8f | ||||||
|  | 	cmp	02(sp),r1 | ||||||
|  | 	blos	8f | ||||||
|  | 7:	sob	r4,1b | ||||||
|  | 	br	2f | ||||||
|  | 8:	sub	02(sp),r1 | ||||||
|  | 	sbc	r0 | ||||||
|  | 	sub	r3,r0 | ||||||
|  | 	sob	r4,1b | ||||||
|  | 2:	tst	04(sp) | ||||||
|  | 	bge	9f | ||||||
|  | 	neg	r0 | ||||||
|  | 	neg	r1 | ||||||
|  | 	sbc	r0 | ||||||
|  | 9:	add	$010,sp | ||||||
|  | 	jmp	retu~ | ||||||
							
								
								
									
										19
									
								
								mach/pdp/libem/rmu.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								mach/pdp/libem/rmu.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | ||||||
|  | .text | ||||||
|  | .globl rmu~ | ||||||
|  | .globl save1~,rmu2~,rmu4~,unknown~ | ||||||
|  | 
 | ||||||
|  | rmu~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	cmp	r0,$04 | ||||||
|  | 	bgt	1f | ||||||
|  | 	beq	2f | ||||||
|  | 	cmp	r0,$02 | ||||||
|  | 	bne	1f | ||||||
|  | 	jsr	pc,rmu2~ | ||||||
|  | 	mov	r1,-(sp) | ||||||
|  | 	jmp	*save1~ | ||||||
|  | 2:	jsr	pc,rmu4~ | ||||||
|  | 	mov	r1,-(sp) | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	jmp	*save1~ | ||||||
|  | 1:	jmp	unknown~ | ||||||
							
								
								
									
										16
									
								
								mach/pdp/libem/rmu2.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								mach/pdp/libem/rmu2.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | ||||||
|  | .text | ||||||
|  | .globl rmu2~ | ||||||
|  | 
 | ||||||
|  | rmu2~: | ||||||
|  | 	mov	04(sp),r1 | ||||||
|  | 	tst	02(sp) | ||||||
|  | 	blt	1f | ||||||
|  | 	clr	r0 | ||||||
|  | 	div	02(sp),r0 | ||||||
|  | 2:	mov	(sp)+,r0 | ||||||
|  | 	add	$04,sp | ||||||
|  | 	jmp	(r0) | ||||||
|  | 1:	cmp	02(sp),r1 | ||||||
|  | 	bhi	2b | ||||||
|  | 	sub	02(sp),r1 | ||||||
|  | 	br	2b | ||||||
							
								
								
									
										52
									
								
								mach/pdp/libem/rmu4.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								mach/pdp/libem/rmu4.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,52 @@ | ||||||
|  | .text | ||||||
|  | .globl rmu4~ | ||||||
|  | .globl save~,retu~ | ||||||
|  | 
 | ||||||
|  | rmu4~: | ||||||
|  | 	jsr	pc,save~ | ||||||
|  | 	clr	r0 | ||||||
|  | 	tst	(sp) | ||||||
|  | 	bne	hardrmu4 | ||||||
|  | 	tst	02(sp) | ||||||
|  | 	blt	hardrmu4 | ||||||
|  | 	mov	06(sp),r2 | ||||||
|  | 	mov	04(sp),r1 | ||||||
|  | 	mov	02(sp),r3 | ||||||
|  | 	div	r3,r0 | ||||||
|  | 	mov	r1,r0 | ||||||
|  | 	mov	r1,r4 | ||||||
|  | 	mov	r2,r1 | ||||||
|  | 	div	r3,r0 | ||||||
|  | 	bvc	1f | ||||||
|  | 	mov	r2,r1 | ||||||
|  | 	mov	r4,r0 | ||||||
|  | 	sub	r3,r0 | ||||||
|  | 	div	r3,r0 | ||||||
|  | 	tst	r1 | ||||||
|  | 	beq	1f | ||||||
|  | 	add	r3,r1 | ||||||
|  | 1:	clr	r0 | ||||||
|  | 	br	2f | ||||||
|  | hardrmu4: | ||||||
|  | 	mov	06(sp),r2 | ||||||
|  | 	mov	04(sp),r1 | ||||||
|  | 	mov	(sp),r3 | ||||||
|  | 	mov	$17.,r4 | ||||||
|  | 	br	3f | ||||||
|  | 6:	clc | ||||||
|  | 	rol	r2 | ||||||
|  | 	rol	r1 | ||||||
|  | 	rol	r0 | ||||||
|  | 3:	cmp	r3,r0 | ||||||
|  | 	bhi	4f | ||||||
|  | 	bcs	5f | ||||||
|  | 	cmp	02(sp),r1 | ||||||
|  | 	blos	5f | ||||||
|  | 4:	sob	r4,6b | ||||||
|  | 	br	2f | ||||||
|  | 5:	sub	02(sp),r1 | ||||||
|  | 	sbc	r0 | ||||||
|  | 	sub	r3,r0 | ||||||
|  | 	sob	r4,6b | ||||||
|  | 2:	add	$010,sp | ||||||
|  | 	jmp	retu~ | ||||||
							
								
								
									
										19
									
								
								mach/pdp/libem/rol.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								mach/pdp/libem/rol.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | ||||||
|  | .text | ||||||
|  | .globl rol~ | ||||||
|  | .globl save~,retu~ | ||||||
|  | 
 | ||||||
|  | rol~: | ||||||
|  | 	jsr	pc,save~ | ||||||
|  | 	mov	(sp)+,r3 | ||||||
|  | 3:	add	r0,sp | ||||||
|  | 	mov	r0,r1 | ||||||
|  | 	asr	r1 | ||||||
|  | 	clc | ||||||
|  | 1:	rol	-(sp) | ||||||
|  | 	sob	r1,1b | ||||||
|  | 	bcc	2f | ||||||
|  | 	mov	sp,r1 | ||||||
|  | 	add	r0,r1 | ||||||
|  | 	bis	$01,-(r1) | ||||||
|  | 2:	sob	r3,3b | ||||||
|  | 	jmp	retu~ | ||||||
							
								
								
									
										18
									
								
								mach/pdp/libem/ror.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								mach/pdp/libem/ror.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | ||||||
|  | .text | ||||||
|  | .globl ror~ | ||||||
|  | .globl save~,retu~ | ||||||
|  | 
 | ||||||
|  | ror~: | ||||||
|  | 	asr	r0 | ||||||
|  | 	jsr	pc,save~ | ||||||
|  | 	mov	(sp)+,r3 | ||||||
|  | 3:	mov	sp,r1 | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	clc | ||||||
|  | 1:	ror	(r1)+ | ||||||
|  | 	sob	r0,1b | ||||||
|  | 	bcc	2f | ||||||
|  | 	bis	$0100000,02(sp) | ||||||
|  | 2:	mov	(sp)+,r0 | ||||||
|  | 	sob	r3,3b | ||||||
|  | 	jmp	retu~ | ||||||
							
								
								
									
										17
									
								
								mach/pdp/libem/sar.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								mach/pdp/libem/sar.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | ||||||
|  | .text | ||||||
|  | .globl sar~ | ||||||
|  | .globl save1~ | ||||||
|  | 
 | ||||||
|  | sar~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	sub	(r0),r1 | ||||||
|  | 	mov	04(r0),r0 | ||||||
|  | 	mul	r0,r1 | ||||||
|  | 	add	(sp)+,r1 | ||||||
|  | 	asr	r0 | ||||||
|  | 	beq	1f | ||||||
|  | 2:	mov	(sp)+,(r1)+ | ||||||
|  | 	sob	r0,2b | ||||||
|  | 	jmp	*save1~ | ||||||
|  | 1:	movb	(sp)+,(r1) | ||||||
|  | 	jmp	*save1~ | ||||||
							
								
								
									
										25
									
								
								mach/pdp/libem/save.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								mach/pdp/libem/save.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | ||||||
|  | .text | ||||||
|  | .globl save~,retu~,save1~ | ||||||
|  | 
 | ||||||
|  | save~: | ||||||
|  | 	mov	r5,savearea | ||||||
|  | 	mov	$[savearea+2],r5 | ||||||
|  | 	mov	r4,(r5)+ | ||||||
|  | 	mov	r3,(r5)+ | ||||||
|  | 	mov	r2,(r5)+ | ||||||
|  | 	mov	(sp)+,r2 | ||||||
|  | 	mov	(sp)+,(r5)+ | ||||||
|  | 	jmp	(r2) | ||||||
|  | retu~: | ||||||
|  | 	mov	-(r5),-(sp) | ||||||
|  | 	mov	-(r5),r2 | ||||||
|  | 	mov	-(r5),r3 | ||||||
|  | 	mov	-(r5),r4 | ||||||
|  | 	mov	-(r5),r5 | ||||||
|  | 	rts	pc | ||||||
|  | 
 | ||||||
|  | .data | ||||||
|  | .even | ||||||
|  | savearea: | ||||||
|  | 	.=.+12. | ||||||
|  | save1~:	0 | ||||||
							
								
								
									
										13
									
								
								mach/pdp/libem/sbf.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								mach/pdp/libem/sbf.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | .text | ||||||
|  | .globl sbf~ | ||||||
|  | .globl setfloat~ | ||||||
|  | 
 | ||||||
|  | sbf~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	jsr	pc,setfloat~ | ||||||
|  | 	movf	(sp)+,r0 | ||||||
|  | 	subf	(sp)+,r0 | ||||||
|  | 	negf	r0 | ||||||
|  | 	movf	r0,-(sp) | ||||||
|  | 	setl | ||||||
|  | 	jmp	(r1) | ||||||
							
								
								
									
										18
									
								
								mach/pdp/libem/sbi.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								mach/pdp/libem/sbi.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | ||||||
|  | .text | ||||||
|  | .globl sbi~ | ||||||
|  | .globl unknown~ | ||||||
|  | 
 | ||||||
|  | sbi~: | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	cmp	r0,$04 | ||||||
|  | 	bgt	1f | ||||||
|  | 	cmp	r0,$02 | ||||||
|  | 	bgt	2f | ||||||
|  | 	sub	(sp)+,(sp) | ||||||
|  | 	jmp	(r1) | ||||||
|  | 2:	sub	(sp)+,02(sp) | ||||||
|  | 	sub	(sp)+,02(sp) | ||||||
|  | 	sbc	(sp) | ||||||
|  | 	jmp	(r1) | ||||||
|  | 1: | ||||||
|  | 	jmp	unknown~ | ||||||
							
								
								
									
										24
									
								
								mach/pdp/libem/set.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								mach/pdp/libem/set.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | ||||||
|  | .text | ||||||
|  | .globl set~ | ||||||
|  | .globl save~,retu~,trp~ | ||||||
|  | 
 | ||||||
|  | ESET	= 2 | ||||||
|  | 
 | ||||||
|  | set~: | ||||||
|  | 	jsr	pc,save~ | ||||||
|  | 	mov	r0,r2 | ||||||
|  | 	asr	r0 | ||||||
|  | 1:	clr	-(sp) | ||||||
|  | 	sob	r0,1b | ||||||
|  | 	div	$8.,r0 | ||||||
|  | 	cmp	r0,r2 | ||||||
|  | 	blo	2f | ||||||
|  | 	mov	$ESET,-(sp) | ||||||
|  | 	jsr	pc,trp~ | ||||||
|  | 	jmp	retu~ | ||||||
|  | 2:	add	sp,r0 | ||||||
|  | 	bisb	bits(r1),(r0) | ||||||
|  | 	jmp	retu~ | ||||||
|  | 
 | ||||||
|  | .data | ||||||
|  | bits:	 .byte	1,2,4,10,20,40,100,200 | ||||||
							
								
								
									
										21
									
								
								mach/pdp/libem/setfl.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								mach/pdp/libem/setfl.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | ||||||
|  | .text | ||||||
|  | .globl setfloat~,setint~ | ||||||
|  | .globl unknown~ | ||||||
|  | 
 | ||||||
|  | setfloat~: | ||||||
|  | 	cmp	r0,$8. | ||||||
|  | 	bne	1f | ||||||
|  | 	rts	pc | ||||||
|  | 1:	cmp	r0,$04 | ||||||
|  | 	bne	3f | ||||||
|  | 	setf | ||||||
|  | 2:	rts	pc | ||||||
|  | 3:	jmp	unknown~ | ||||||
|  | setint~: | ||||||
|  | 	cmp	r0,$04 | ||||||
|  | 	bne	4f | ||||||
|  | 	setl | ||||||
|  | 	rts	pc | ||||||
|  | 4:	cmp	r0,$02 | ||||||
|  | 	bne	3b | ||||||
|  | 5:	rts	pc | ||||||
							
								
								
									
										92
									
								
								mach/pdp/libem/sigtrp.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								mach/pdp/libem/sigtrp.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,92 @@ | ||||||
|  | .text | ||||||
|  | .globl sigtrp~ | ||||||
|  | .globl trp~,save~,retu~ | ||||||
|  | 
 | ||||||
|  | indir	= 0 | ||||||
|  | signal	= 48. | ||||||
|  | 
 | ||||||
|  | rti	= 2 | ||||||
|  | 
 | ||||||
|  | sig1:	mov	sig.trp+0.,-(sp) | ||||||
|  | 	br	1f | ||||||
|  | sig2:	mov	sig.trp+2.,-(sp) | ||||||
|  | 	br	1f | ||||||
|  | sig3:	mov	sig.trp+4.,-(sp) | ||||||
|  | 	br	1f | ||||||
|  | sig4:	mov	sig.trp+6.,-(sp) | ||||||
|  | 	br	1f | ||||||
|  | sig5:	mov	sig.trp+8.,-(sp) | ||||||
|  | 	br	1f | ||||||
|  | sig6:	mov	sig.trp+10.,-(sp) | ||||||
|  | 	br	1f | ||||||
|  | sig7:	mov	sig.trp+12.,-(sp) | ||||||
|  | 	br	1f | ||||||
|  | sig10:	mov	sig.trp+18.,-(sp) | ||||||
|  | 	br	1f | ||||||
|  | sig11:	mov	sig.trp+20.,-(sp) | ||||||
|  | 	br	1f | ||||||
|  | sig12:	mov	sig.trp+22.,-(sp) | ||||||
|  | 	br	1f | ||||||
|  | sig13:	mov	sig.trp+24.,-(sp) | ||||||
|  | 	br	1f | ||||||
|  | sig14:	mov	sig.trp+026.,-(sp) | ||||||
|  | 	br	1f | ||||||
|  | sig15:	mov	sig.trp+028.,-(sp) | ||||||
|  | 	br	1f | ||||||
|  | sig16:	mov	sig.trp+030.,-(sp) | ||||||
|  | 	br	1f | ||||||
|  | 1: | ||||||
|  | 	jsr	pc,trp~ | ||||||
|  | 	rti | ||||||
|  | 
 | ||||||
|  | sigtrp~: | ||||||
|  | 	jsr	pc,save~ | ||||||
|  | 	tst	(sp)+ | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	ble	sig.bad | ||||||
|  | 	cmp	r0,$16. | ||||||
|  | 	bhi	sig.bad | ||||||
|  | 	mov	r0,call+02 | ||||||
|  | 	asl	r0 | ||||||
|  | 	mov	sig.trp-2(r0),r3 | ||||||
|  | 	cmp	r1,$256. | ||||||
|  | 	bhis	1f | ||||||
|  | 	mov	sig.adr-2(r0),r2 | ||||||
|  | 	bne	2f | ||||||
|  | sig.bad: | ||||||
|  | 	mov	$-1,r0 | ||||||
|  | sigbad: | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	jmp	retu~ | ||||||
|  | 1:	cmp	r1,$-3 | ||||||
|  | 	blo	sig.bad | ||||||
|  | 	mov	r1,r2 | ||||||
|  | 	inc	r2 | ||||||
|  | 	inc	r2 | ||||||
|  | 2:	mov	r1,sig.trp-2(r0) | ||||||
|  | 	mov	r2,call+04 | ||||||
|  | 	sys	indir ; call
 | ||||||
|  | 	bcs	sigbad | ||||||
|  | 	asr	r0 | ||||||
|  | 	bcc	1f | ||||||
|  | 	mov	$-3,-(sp) | ||||||
|  | 	clr	-(sp) | ||||||
|  | 	jmp	retu~ | ||||||
|  | 1:	mov	r3,-(sp) | ||||||
|  | 	clr	-(sp) | ||||||
|  | 	jmp	retu~ | ||||||
|  | 
 | ||||||
|  | .data | ||||||
|  | call:	sys	signal;	0; 0
 | ||||||
|  | sig.trp: | ||||||
|  | 	-2;	-2;	-2;	-2
 | ||||||
|  | 	-2;	-2;	-2;	-2
 | ||||||
|  | 	-2;	-2;	-2;	-2
 | ||||||
|  | 	-2;	-2;	-2;	-2
 | ||||||
|  | sig.adr: | ||||||
|  | 	sig1;	sig2;	sig3;	sig4
 | ||||||
|  | 	sig5;	sig6;	sig7;	0
 | ||||||
|  | 	0;	sig10;	sig11;	sig12
 | ||||||
|  | 	sig13;	sig14;	sig15;	sig16
 | ||||||
							
								
								
									
										28
									
								
								mach/pdp/libem/sim.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								mach/pdp/libem/sim.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,28 @@ | ||||||
|  | .text | ||||||
|  | .globl sim~ | ||||||
|  | .globl trpim~,save1~ | ||||||
|  | 
 | ||||||
|  | .float = 1 | ||||||
|  | 
 | ||||||
|  | sim~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	mov	r0,trpim~ | ||||||
|  | .if .float | ||||||
|  | 	stfps	r1 | ||||||
|  | 	bis	$07400,r1 | ||||||
|  | 	bit	$020,r0 | ||||||
|  | 	beq	0f | ||||||
|  | 	bic	$01000,r1 | ||||||
|  | 0:	bit	$040,r0 | ||||||
|  | 	beq	0f | ||||||
|  | 	bic	$02000,r1 | ||||||
|  | 0:	bit	$01000,r0 | ||||||
|  | 	beq	0f | ||||||
|  | 	bic	$04000,r1 | ||||||
|  | 0:	bit	$02000,r0 | ||||||
|  | 	beq	0f | ||||||
|  | 	bic	$0400,r1 | ||||||
|  | 0:	ldfps	r1 | ||||||
|  | .endif | ||||||
|  | 	jmp	*save1~ | ||||||
							
								
								
									
										22
									
								
								mach/pdp/libem/sli.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								mach/pdp/libem/sli.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | ||||||
|  | .text | ||||||
|  | .globl sli~ | ||||||
|  | .globl save1~,unknown~ | ||||||
|  | 
 | ||||||
|  | sli~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	cmp	r0,$02 | ||||||
|  | 	bgt	1f | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	ash	r1,r0 | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	jmp	*save1~ | ||||||
|  | 1:	cmp	r0,$04 | ||||||
|  | 	bgt	2f | ||||||
|  | 	mov	02(sp),r0 | ||||||
|  | 	mov	04(sp),r1 | ||||||
|  | 	ashc	(sp)+,r0 | ||||||
|  | 	mov	r0,(sp) | ||||||
|  | 	mov	r1,02(sp) | ||||||
|  | 	jmp	*save1~ | ||||||
|  | 2:	jmp	unknown~ | ||||||
							
								
								
									
										25
									
								
								mach/pdp/libem/sri.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								mach/pdp/libem/sri.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | ||||||
|  | .text | ||||||
|  | .globl sri~ | ||||||
|  | .globl unknown~,save1~ | ||||||
|  | 
 | ||||||
|  | / Size in r0 | ||||||
|  | sri~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	cmp	r0,$02 | ||||||
|  | 	bgt	1f | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	neg	r1 | ||||||
|  | 	ash	r1,r0 | ||||||
|  | 	mov	r0,-(sp) | ||||||
|  | 	jmp	*save1~ | ||||||
|  | 1:	cmp	r0,$04 | ||||||
|  | 	bgt	2f | ||||||
|  | 	mov	02(sp),r0 | ||||||
|  | 	mov	04(sp),r1 | ||||||
|  | 	neg	(sp) | ||||||
|  | 	ashc	(sp)+,r0 | ||||||
|  | 	mov	r0,(sp) | ||||||
|  | 	mov	r1,02(sp) | ||||||
|  | 	jmp	*save1~ | ||||||
|  | 2:	jmp	unknown~ | ||||||
							
								
								
									
										30
									
								
								mach/pdp/libem/sru.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								mach/pdp/libem/sru.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | ||||||
|  | .text | ||||||
|  | .globl sru~,slu~ | ||||||
|  | .globl save1~,unknown~ | ||||||
|  | 
 | ||||||
|  | sru~: | ||||||
|  | 	neg	2(sp) | ||||||
|  | slu~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	cmp	r0,$02 | ||||||
|  | 	bgt	1f | ||||||
|  | 	mov	2(sp),r1 | ||||||
|  | 	clr	r0 | ||||||
|  | 	ashc	(sp)+,r0 | ||||||
|  | 2:	mov	r1,-(sp) | ||||||
|  | 	jmp	*save1~ | ||||||
|  | 1:	cmp	r0,$04 | ||||||
|  | 	bgt	3f | ||||||
|  | 	mov	02(sp),r0 | ||||||
|  | 	mov	04(sp),r1 | ||||||
|  | 	tst	(sp) | ||||||
|  | 	beq	4f | ||||||
|  | 	ashc	$-1,r0 | ||||||
|  | 	bic	$0100000,r0 | ||||||
|  | 	inc	(sp) | ||||||
|  | 	beq	4f | ||||||
|  | 	ashc	(sp)+,r0 | ||||||
|  | 4:	mov	r0,(sp) | ||||||
|  | 	mov	r1,02(sp) | ||||||
|  | 	jmp	*save1~ | ||||||
|  | 3:	jmp	unknown~ | ||||||
							
								
								
									
										15
									
								
								mach/pdp/libem/sto2.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								mach/pdp/libem/sto2.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | ||||||
|  | .text | ||||||
|  | .globl sto2~ | ||||||
|  | .globl save1~ | ||||||
|  | 
 | ||||||
|  | sto2~: | ||||||
|  | 	mov	(sp)+,save1~ | ||||||
|  | 	cmp	r0,$01 | ||||||
|  | 	bne	1f | ||||||
|  | 	movb	(sp),(r1) | ||||||
|  | 	tst	(sp)+ | ||||||
|  | 	jmp	*save1~ | ||||||
|  | 1:	asr	r0 | ||||||
|  | 2:	mov	(sp)+,(r1)+ | ||||||
|  | 	sob	r0,2b | ||||||
|  | 	jmp	*save1~ | ||||||
							
								
								
									
										24
									
								
								mach/pdp/libem/strhp.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								mach/pdp/libem/strhp.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | ||||||
|  | .text | ||||||
|  | .globl strhp~ | ||||||
|  | .globl fat~,reghp~,_end | ||||||
|  | indir	= 0 | ||||||
|  | 
 | ||||||
|  | break	= 17. | ||||||
|  | EHEAP	= 17. | ||||||
|  | 
 | ||||||
|  | strhp~: | ||||||
|  | 	mov	(sp)+,r0 | ||||||
|  | 	mov	(sp)+,r1 | ||||||
|  | 	mov	r1,reghp~ | ||||||
|  | 	cmp	r1,2f+2 | ||||||
|  | 	blos	1f | ||||||
|  | 	add	$01777,r1 | ||||||
|  | 	bic	$01777,r1 | ||||||
|  | 	mov	r1,2f+2 | ||||||
|  | 	sys	indir ; 2f
 | ||||||
|  | 	bcs	3f | ||||||
|  | 1:	jmp	(r0) | ||||||
|  | 3:	mov	$EHEAP,-(sp) | ||||||
|  | 	jmp	fat~ | ||||||
|  | .data | ||||||
|  | 2:	sys	break; _end
 | ||||||
							
								
								
									
										60
									
								
								mach/pdp/libem/trp.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								mach/pdp/libem/trp.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,60 @@ | ||||||
|  | .text | ||||||
|  | .globl trp~,fat~ | ||||||
|  | .globl trppc~,trpim~ | ||||||
|  | 	write=4. | ||||||
|  | 
 | ||||||
|  | fat~: | ||||||
|  | 	jsr     pc,trp~ | ||||||
|  | 	4 | ||||||
|  | 
 | ||||||
|  | trp~: | ||||||
|  | 	mov     r0,-(sp) | ||||||
|  | 	mov     04(sp),r0 | ||||||
|  | 	mov     02(sp),04(sp) | ||||||
|  | 	mov     (sp),02(sp) | ||||||
|  | 	mov     r1,(sp) | ||||||
|  | 	cmp     r0,$16. | ||||||
|  | 	jhis    0f | ||||||
|  | 	mov     $01,r1 | ||||||
|  | 	ashc    r0,r1 | ||||||
|  | 	bit     r1,trpim~ | ||||||
|  | 	bne     8f | ||||||
|  | 0:      mov     r2,-(sp) | ||||||
|  | 	mov     r3,-(sp) | ||||||
|  | 	mov     r4,-(sp) | ||||||
|  | 	movf    r0,-(sp) | ||||||
|  | 	movf    r1,-(sp) | ||||||
|  | 	movf    r2,-(sp) | ||||||
|  | 	movf    r3,-(sp) | ||||||
|  | 	stfps   -(sp) | ||||||
|  | 	mov     r0,-(sp) | ||||||
|  | 	mov     trppc~,r0 | ||||||
|  | 	beq     9f | ||||||
|  | 	clr     trppc~ | ||||||
|  | 	jsr     pc,(r0) | ||||||
|  | 	tst     (sp)+ | ||||||
|  | 	ldfps   (sp)+ | ||||||
|  | 	movf    (sp)+,r3 | ||||||
|  | 	movf    (sp)+,r2 | ||||||
|  | 	movf    (sp)+,r1 | ||||||
|  | 	movf    (sp)+,r0 | ||||||
|  | 	mov     (sp)+,r4 | ||||||
|  | 	mov     (sp)+,r3 | ||||||
|  | 	mov     (sp)+,r2 | ||||||
|  | 8:      mov     (sp)+,r1 | ||||||
|  | 	mov     (sp)+,r0 | ||||||
|  | 	rts     pc | ||||||
|  | 9:      mov	(sp)+,r0 | ||||||
|  | 	mov	$buf+11,r1 | ||||||
|  | 	mov	$4,r2 | ||||||
|  | 1:	mov	r0,r3 | ||||||
|  | 	bic	$177770,r3 | ||||||
|  | 	bisb	r3,-(r1) | ||||||
|  | 	ash	$-3,r0 | ||||||
|  | 	sob	r2,1b | ||||||
|  | 	mov	$2,r0 | ||||||
|  | 	sys	write;buf;11.
 | ||||||
|  | 	4 | ||||||
|  | 
 | ||||||
|  | .data | ||||||
|  | buf:	<err 00000\n> | ||||||
							
								
								
									
										9
									
								
								mach/pdp/libem/unknown.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								mach/pdp/libem/unknown.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | ||||||
|  | .text | ||||||
|  | .globl unknown~ | ||||||
|  | .globl fat~ | ||||||
|  | 
 | ||||||
|  | EILLSIZ	= 19. | ||||||
|  | 
 | ||||||
|  | unknown~: | ||||||
|  | 	mov	$EILLSIZ,-(sp) | ||||||
|  | 	jmp	fat~ | ||||||
							
								
								
									
										13
									
								
								mach/pdp/libem/xor.s
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								mach/pdp/libem/xor.s
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | .globl xor~ | ||||||
|  | .globl save~,retu~ | ||||||
|  | 
 | ||||||
|  | xor~: | ||||||
|  | 	jsr	pc,save~ | ||||||
|  | 	mov	sp,r1 | ||||||
|  | 	add	r0,r1 | ||||||
|  | 	asr	r0 | ||||||
|  | 1: | ||||||
|  | 	mov	(sp)+,r2 | ||||||
|  | 	xor	r2,(r1)+ | ||||||
|  | 	sob	r0,1b | ||||||
|  | 	jmp	retu~ | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue