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