home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Pascal / HISOFTPASCAL2,0-3.DMS / in.adf / Units / BattMem.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-05-20  |  1.5 KB  |  89 lines

  1. unit BattMem;
  2.  
  3. INTERFACE
  4. uses Exec;
  5.  
  6.  
  7. var
  8.     BattMemBase: pLibrary;
  9.  
  10.  
  11. const
  12.     BATTMEM_SCSI_LUNS_ADDR = 2;
  13.     BATTMEMNAME = 'battmem.resource';
  14.     RESOURCES_BATTMEMBITSSHARED_H = 1;
  15.     RESOURCES_BATTMEMBITSAMIGA_H = 1;
  16.     BATTMEM_SHARED_AMNESIA_ADDR = $40;
  17.     BATTMEM_SCSI_TIMEOUT_ADDR = 1;
  18.     BATTMEM_SCSI_HOST_ID_ADDR = $41;
  19.     BATTMEM_AMIGA_AMNESIA_ADDR = 0;
  20.     BATTMEM_SCSI_SYNC_XFER_LEN = 1;
  21.     BATTMEM_SCSI_LUNS_LEN = 1;
  22.     BATTMEM_SHARED_AMNESIA_LEN = 1;
  23.     RESOURCES_BATTMEM_H = 1;
  24.     BATTMEM_SCSI_TIMEOUT_LEN = 1;
  25.     RESOURCES_BATTMEMBITSAMIX_H = 1;
  26.     BATTMEM_SCSI_HOST_ID_LEN = 3;
  27.     BATTMEM_AMIGA_AMNESIA_LEN = 1;
  28.     BATTMEM_SCSI_SYNC_XFER_ADDR = $44;
  29.  
  30.  
  31. procedure ObtainBattSemaphore;
  32. procedure ReleaseBattSemaphore;
  33. function ReadBattMem
  34.         (buffer: pointer;
  35.         offset: long;
  36.         length: long): long;
  37.  
  38. function WriteBattMem
  39.         (buffer: pointer;
  40.         offset: long;
  41.         length: long): long;
  42.  
  43.  
  44.  
  45. IMPLEMENTATION
  46. procedure ObtainBattSemaphore; xassembler;
  47. asm
  48.     move.l    a6,-(sp)
  49.     move.l    BattMemBase,a6
  50.     jsr        -6(a6)
  51.     move.l    (sp)+,a6
  52. end;
  53.  
  54. procedure ReleaseBattSemaphore; xassembler;
  55. asm
  56.     move.l    a6,-(sp)
  57.     move.l    BattMemBase,a6
  58.     jsr        -$C(a6)
  59.     move.l    (sp)+,a6
  60. end;
  61.  
  62. function ReadBattMem; xassembler;
  63. asm
  64.     move.l    a6,-(sp)
  65.     lea        8(sp),a6
  66.     move.l    (a6)+,d1
  67.     move.l    (a6)+,d0
  68.     move.l    (a6)+,a0
  69.     move.l    BattMemBase,a6
  70.     jsr        -$12(a6)
  71.     move.l    d0,$14(sp)
  72.     move.l    (sp)+,a6
  73. end;
  74.  
  75. function WriteBattMem; xassembler;
  76. asm
  77.     move.l    a6,-(sp)
  78.     lea        8(sp),a6
  79.     move.l    (a6)+,d1
  80.     move.l    (a6)+,d0
  81.     move.l    (a6)+,a0
  82.     move.l    BattMemBase,a6
  83.     jsr        -$18(a6)
  84.     move.l    d0,$14(sp)
  85.     move.l    (sp)+,a6
  86. end;
  87.  
  88. end.
  89.