AUSAM/source/libc/connect.s

Compare this file to the similar file:
Show the results in this format:

/ C library -- connection

/ types of connection
tdisconnect = 0
tconlog     = 1
tconview    = 2
tcongrab    = 3
tconshare   = 4

/  disconnect(fd)	where fd is either master-fd or slave-fd
/
/  disconnect == 0 means success
/  disconnect == -1 means error

.globl	_disconnect, cerror

_disconnect:
	mov	r5,-(sp)
	mov	sp,r5
	mov	4(r5),r0
	mov	r0,r1		/ same fd (it will be checked)
	clr	0f		/ indicate disconnect
	sys	0; 9f
	bec	1f
	jmp	cerror
1:
	clr	r0
	mov	(sp)+,r5
	rts	pc

/  connect(master-fd, slave-fd, master-cntrl-char);
/
/  connect == 0 means success
/  connect == -1 means error

.globl	_connect

_connect:
	mov	$tconlog,0f
	jbr	2f

/  ttyview(master-fd, slave-fd, master-cntrl-char);
/
/  ttyview ==  0 means success
/  ttyview == -1 means error
/
.globl	_ttyview

_ttyview:
	mov	$tconview,0f
	jbr	2f

/  ttygrab(master-fd, slave-fd, master-cntrl-char);
/
/  ttygrab ==  0 means success
/  ttygrab == -1 means error
/
.globl	_ttygrab

_ttygrab:
	mov	$tcongrab,0f
	jbr	2f

/  ttyshare(master-fd, slave-fd, master-cntrl-char);
/
/  ttyshare ==  0 means success
/  ttygrab  == -1 means error
/
.globl	_ttyshare

_ttyshare:
	mov	$tconshare,0f
	jbr	2f

/  common code for log, view, grab, share
/
2:
	mov	r5,-(sp)
	mov	sp,r5
	mov	4(r5),r0
	mov	6(r5),r1
	mov	8(r5),0f+2
	sys	0; 9f
	bec	1f
	jmp	cerror
1:
	clr	r0
	mov	(sp)+,r5
	rts	pc


.data
9:
	sys	59.; 0: 0; 0