RASCSI/src/x68k/RASDRV/RASDRV.S

194 lines
3.6 KiB
ArmAsm
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

*---------------------------------------------------------------------------
*
* SCSI Target Emulator RaSCSI (*^..^*)
* for Raspberry Pi
*
* Powered by XM6 TypeG Technorogy.
* Copyright (C) 2016-2019 GIMONS
* [ ]
*
* Based on
* X68k Emulator Host Filesystem Driver version 0.27
* Programmed By co
*
*---------------------------------------------------------------------------
CPU 68010
INCLUDE DOSCALL.MAC
INCLUDE IOCSCALL.MAC
.XREF _Init, _Process ;bridge.c
COMMAND EQU 2
ERRLOW EQU 3 8
ERRHIGH EQU 4 8
MXUNIT EQU 13
DEVEND EQU 14
BDEVNO EQU 22
DDHEADER:
DC.L -1 +$00
DC.W $2040 +$04
DC.L DDSTRATEGY +$06
DC.L DDENTRY_FIRST +$0A
DC.B '*EMUHOST' +$0E
DDREQUEST:
DC.L 0
DDSTRATEGY:
MOVE.L A5,DDREQUEST
RTS
*
DDENTRY:
MOVE.L SP,(STACK_BUFF)
LEA (DEF_STACK),SP
MOVEM.L D1-D3/A0-A2,-(SP)
MOVEM.L DDREQUEST(PC),D0 D0.L:
MOVE.L D0,-(SP)
BSR _Process
ADDQ.L #4,SP
MOVEM.L (SP)+,D1-D3/A0-A2
MOVEA.L (STACK_BUFF),SP
RTS
KEEP_HERE:
*
DDENTRY_FIRST:
MOVEM.L D1-D3/A0-A2/A5,-(SP)
MOVEA.L DDREQUEST(PC),A5 A5.L:
* CMPI.B #$40,COMMAND(A5) Human68k
* BNE UNSUPPORTED :
*
PEA MESSAGE_TITLE(PC)
DOS _PRINT
ADDQ.L #4,SP
*
DEVICE_CHECK:
BSR _Init
TST.L D0
BEQ NOTFOUND :
*
LEA DDENTRY(PC),A1
LEA DDHEADER+$0A(PC),A0
MOVE.L A1,(A0)
MOVE.L #PROG_END,DEVEND(A5)
ST.B MXUNIT(A5)
JSR (A1)
TST.B MXUNIT(A5)
BLE NODRIVE :
MOVE.B BDEVNO(A5),D0
MOVE.B MXUNIT(A5),D1
LEA FIRSTDRIVE(PC),A0
ADD.B D0,(A0)
ADD.B D1,D0
ADD.B D0,LASTDRIVE-FIRSTDRIVE(A0)
PEA MESSAGE_DRIVENAME(PC) : A:
DOS _PRINT
PEA MESSAGE_DRIVENAME2(PC) : Z:
SUBQ.B #2,D1
BCS @F
DOS _PRINT
@@ ADDQ.L #8,SP
PEA MESSAGE_DRIVENAME3(PC) :
BRA QUIT
NOTFOUND:
PEA MESSAGE_NOTFOUND(PC) :
BRA ABORT
UNSUPPORTED:
PEA MESSAGE_UNSUPPORTED(PC) :
BRA ABORT
NODRIVE:
PEA MESSAGE_NODRIVE(PC) :
ABORT:
MOVE.B #$0D,ERRLOW(A5)
MOVE.B #$70,ERRHIGH(A5)
QUIT:
DOS _PRINT
ADDQ.L #4,SP
MOVEM.L (SP)+,D1-D3/A0-A2/A5
RTS
SECRET:
PEA MESSAGE_TITLE2(PC)
DOS _PRINT
PEA CREDIT(PC)
DOS _PRINT
ADDQ.L #8,SP
DOS _EXIT
DATA
*
MESSAGE_NOTFOUND:
DC.B '',$0D,$0A,0
MESSAGE_UNSUPPORTED:
DC.B '',$0D,$0A,0
MESSAGE_NODRIVE:
DC.B '',$0D,$0A,0
*
MESSAGE_DRIVENAME:
DC.B ''
FIRSTDRIVE:
DC.B 'A:',0
MESSAGE_DRIVENAME2:
DC.B ''
LASTDRIVE:
DC.B '@:',0
MESSAGE_DRIVENAME3:
DC.B '',$0D,$0A,0
*
MESSAGE_TITLE:
DC.B $0D,$0A
MESSAGE_TITLE2:
DC.B 'RaSCSI FileSystem Driver version 1.42',$0D,$0A,0
*
CREDIT:
DC.B 'Coded by GIMONS',$0D,$0A
DC.B 'Special thanks to',$0D,$0A
DC.B 9,'co',$0D,$0A
DC.B 9,'',$0D,$0A
DC.B 9,'',$0D,$0A
DC.B 0
BSS
QUAD
STACK_BUFF:
.DS.L 1
STACK
QUAD
.DS.B 1024*2
DEF_STACK:
PROG_END:
END SECRET