Home | History | Annotate | Line # | Download | only in libsa
      1  1.2    isaki /*	$NetBSD: fdsub.S,v 1.2 2024/01/07 07:58:34 isaki Exp $	*/
      2  1.1  minoura 
      3  1.1  minoura /*
      4  1.1  minoura  * Copyright (c) 2001 MINOURA Makoto.
      5  1.1  minoura  * All rights reserved.
      6  1.1  minoura  *
      7  1.1  minoura  * Redistribution and use in source and binary forms, with or without
      8  1.1  minoura  * modification, are permitted provided that the following conditions
      9  1.1  minoura  * are met:
     10  1.1  minoura  * 1. Redistributions of source code must retain the above copyright
     11  1.1  minoura  *    notice, this list of conditions and the following disclaimer.
     12  1.1  minoura  * 2. Redistributions in binary form must reproduce the above copyright
     13  1.1  minoura  *    notice, this list of conditions and the following disclaimer in the
     14  1.1  minoura  *    documentation and/or other materials provided with the distribution.
     15  1.1  minoura  *
     16  1.1  minoura  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     17  1.1  minoura  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     18  1.1  minoura  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     19  1.1  minoura  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     20  1.1  minoura  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     21  1.1  minoura  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     22  1.1  minoura  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     23  1.1  minoura  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     24  1.1  minoura  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     25  1.1  minoura  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     26  1.1  minoura  */
     27  1.1  minoura 
     28  1.1  minoura #include <machine/asm.h>
     29  1.1  minoura #include "iocscall.h"
     30  1.1  minoura 
     31  1.1  minoura /*
     32  1.1  minoura  * int fd_check_fmt(drive, head, minmax)
     33  1.1  minoura  *	int drive;		(0-3)
     34  1.1  minoura  *	int head;		(0-1)
     35  1.1  minoura  *	struct fdfmt *minmax;	(results are stored)
     36  1.2    isaki  *	return value:	0 on success, or negative
     37  1.1  minoura  */
     38  1.1  minoura 
     39  1.1  minoura 	.text
     40  1.1  minoura ENTRY_NOPROFILE(fd_check_format)
     41  1.1  minoura ||	movl	%sp@(4),%d1
     42  1.1  minoura ||	andil	#3,%d1
     43  1.1  minoura ||	orib	#0x90,%d1
     44  1.1  minoura ||	lslw	#8,%d1
     45  1.1  minoura ||	movql	#0,%d2
     46  1.1  minoura ||	IOCS(__B_DRVCHK)
     47  1.1  minoura ||	btst.b	#1,%d0
     48  1.1  minoura ||	beq	fail
     49  1.1  minoura ||	IOCS(__B_RECALI)
     50  1.1  minoura 
     51  1.1  minoura 	moveml	%sp@(4),%d0-%d1
     52  1.1  minoura 	andil	#1,%d1
     53  1.1  minoura 	andil	#3,%d0
     54  1.1  minoura 	lslw	#2,%d1
     55  1.1  minoura 	orw	%d1,%d0
     56  1.1  minoura 	jbsr	check_fd_format
     57  1.1  minoura 
     58  1.1  minoura 	tstl	%d1
     59  1.1  minoura 	beq	fail1
     60  1.1  minoura 
     61  1.1  minoura 	moval	%sp@(12),%a0
     62  1.1  minoura 	moveml	%d0-%d1,%a0@
     63  1.1  minoura 
     64  1.1  minoura 	movl	#0,%d0
     65  1.1  minoura 	rts
     66  1.1  minoura 
     67  1.1  minoura ||fail:
     68  1.1  minoura ||	movl	#-6,%d0
     69  1.1  minoura ||	rts
     70  1.1  minoura fail1:
     71  1.1  minoura 	movl	#-5,%d0
     72  1.1  minoura 
     73  1.1  minoura #define BOOT_ERROR(a)	movl	#0,%d1;	\
     74  1.1  minoura 			rts
     75  1.1  minoura 
     76  1.1  minoura #include "chkfmt.s"
     77