home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 001-099 / ff039.lzh / Driver / mydev.i < prev    next >
Text File  |  1986-10-23  |  4KB  |  127 lines

  1.  
  2. ******************************************************************
  3. *                                                                *
  4. * Copyright (C) 1986, Commodore Amiga Inc.  All rights reserved. *
  5. * Permission granted for non-commercial use             *                                *
  6. *                                                                *
  7. ******************************************************************
  8.  
  9.  
  10. *****************************************************************
  11. *
  12. * mydev.i -- external declarations for skeleton device
  13. *
  14. * SOURCE CONTROL
  15. * ------ -------
  16. * $Header: ramlib.i,v 31.1 85/10/13 23:12:51 neil Exp $
  17. *
  18. * $Locker: neil $
  19. *
  20. *****************************************************************
  21. INFO_LEVEL    EQU    0    ; Specify amount of debugging info desired
  22. *INTRRUPT    SET    1    ; Remove "*" to enable fake interrupt code
  23.  
  24. ; stack size and priority for the process we will create
  25. MYPROCSTACKSIZE    EQU    $800
  26. MYPROCPRI    EQU    0
  27.  
  28. SECTOR        EQU    512    ; # bytes per sector
  29. SECSHIFT    EQU    9    ; Shift count to convert byte # to sector #
  30. RAMSIZE        EQU    512*200    ; Use this much RAM per unit
  31. IAMPULLING    EQU    7    ; "I am pulling the interrupt" bit of INTCRL1
  32. INTENABLE    EQU    4    ; "Interrupt Enable" bit of INTCRL2
  33. INTCTRL1    EQU    $40    ; Interrupt control register offset on board
  34. INTCTRL2    EQU    $42    ; Interrupt control register offset on board
  35. INTACK        EQU    $50    ; My board's interrupt reset address
  36. ;-----------------------------------------------------------------------
  37. ;
  38. ; device command definitions
  39. ;
  40. ;-----------------------------------------------------------------------
  41.  
  42.     DEVINIT
  43.     DEVCMD    CMD_MOTOR    ; control the disk's motor (NO-OP)
  44.     DEVCMD    CMD_SEEK    ; explicit seek (NO-OP)
  45.     DEVCMD    CMD_FORMAT    ; format disk - equated to WRITE for RAMDISK
  46.     DEVCMD    CMD_REMOVE    ; notify when disk changes (NO-OP)
  47.     DEVCMD    CMD_CHANGENUM    ; number of disk changes (always 0)
  48.     DEVCMD    CMD_CHANGESTATE    ; is there a disk in the drive? (always TRUE)
  49.     DEVCMD    CMD_PROTSTATUS    ; is the disk write protected? (always FALSE)
  50.     DEVCMD    CMD_RAWREAD    ; Not supported
  51.     DEVCMD    CMD_RAWWRITE    ; Not supported
  52.     DEVCMD    CMD_GETDRIVETYPE; Get drive type
  53.     DEVCMD    CMD_GETNUMTRACKS; Get number of tracks
  54.     DEVCMD    CMD_ADDCHANGEINT; Add disk change interrupt (NO-OP)
  55.     DEVCMD    CMD_REMCHANGEINT; Remove disk change interrupt ( NO-OP)
  56.     DEVCMD    MYDEV_END    ; place marker -- first illegal command #
  57.  
  58. ;-----------------------------------------------------------------------
  59. ;
  60. ; Layout of parameter packet for MakeDosNode
  61. ;
  62. ;-----------------------------------------------------------------------
  63.  
  64.     STRUCTURE MkDosNodePkt,0
  65.     APTR    mdn_dosName    ; Pointer to DOS file handler name
  66.     APTR    mdn_execName    ; Pointer to device driver name
  67.     ULONG    mdn_unit    ; Unit number
  68.     ULONG    mdn_flags    ; OpenDevice flags
  69.     ULONG    mdn_tableSize    ; Environment size
  70.     ULONG    mdn_sizeBlock    ; # longwords in a block
  71.     ULONG    mdn_secOrg    ; sector origin -- unused
  72.     ULONG    mdn_numHeads    ; number of surfaces
  73.     ULONG    mdn_secsPerBlk    ; secs per logical block -- unused
  74.     ULONG    mdn_blkTrack    ; secs per track
  75.     ULONG    mdn_resBlks    ; reserved blocks -- MUST be at least 1!
  76.     ULONG    mdn_prefac    ; unused
  77.     ULONG    mdn_interleave    ; interleave
  78.     ULONG    mdn_lowCyl    ; lower cylinder
  79.     ULONG    mdn_upperCyl    ; upper cylinder
  80.     ULONG    mdn_numBuffers    ; number of buffers
  81.     ULONG    mdn_memBufType    ; Type of memory for AmigaDOS buffers
  82.     STRUCT    mdn_dName,5    ; DOS file handler name "RAM0"
  83.     LABEL   mdn_Sizeof    ; Size of this structure
  84.  
  85. ;-----------------------------------------------------------------------
  86. ;
  87. ; device data structures
  88. ;
  89. ;-----------------------------------------------------------------------
  90.  
  91. ; maximum number of units in this device
  92. MD_NUMUNITS    EQU    4
  93.  
  94.     STRUCTURE MyDev,LIB_SIZE
  95.     ULONG    md_SysLib
  96.     ULONG    md_SegList
  97.     ULONG    md_Base        ; Base address of this device's expansion board
  98.     UBYTE    md_Flags
  99.     UBYTE    md_pad
  100.     STRUCT    md_Units,MD_NUMUNITS*4
  101.     LABEL   MyDev_Sizeof
  102.  
  103.     STRUCTURE MyDevMsg,MN_SIZE
  104.     APTR    mdm_Device
  105.     APTR    mdm_Unit
  106.     LABEL    MyDevMsg_Sizeof
  107.  
  108.     STRUCTURE MyDevUnit,UNIT_SIZE
  109.     UBYTE    mdu_UnitNum
  110.     UBYTE    mdu_SigBit        ; Signal bit allocated for interrupts
  111.     APTR    mdu_Device
  112.     STRUCT    mdu_stack,MYPROCSTACKSIZE
  113.      STRUCT    mdu_is,IS_SIZE        ; Interrupt structure
  114.     STRUCT    mdu_tcb,TC_SIZE        ; TCB for disk task
  115.     STRUCT    mdu_Msg,MyDevMsg_Sizeof
  116.     ULONG    mdu_SigMask        ; Signal these bits on interrupt
  117.     STRUCT    mdu_RAM,RAMSIZE        ; RAM used to simulate disk
  118.     LABEL    MyDevUnit_Sizeof
  119.  
  120.     ;------ state bit for unit stopped
  121.     BITDEF    MDU,STOPPED,2
  122.  
  123. MYDEVNAME    MACRO
  124.         DC.B    'mydev.device',0
  125.         ENDM
  126.  
  127.