home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / CPM3 / DATEP2.LBR / IBMM.AZ / IBMM.AS
Text File  |  2000-06-30  |  768b  |  30 lines

  1. ; IBMM.AS - Inter-bank memory move.  Relies upon MOVE and XMOVE functions
  2. ; being implemented in your CP/M Plus BIOS.
  3. ;
  4. ; Written for the ZAS assembler, part of the Hi-Tech C compiler package.
  5.  
  6.     psect    text
  7.     global    _ibmm, csv, cret
  8. _ibmm:
  9.     ld    hl,(1)        ;Set up the MOVE and XMOVE routine entries
  10.     ld    l,29*3        ;(Cannot use BDOS(50,....) because CP/M 3
  11.     ld    (xmove+1),hl    ; traps and disallows memory moves) 
  12.     ld    l,25*3
  13.     ld    (move+1),hl
  14.     call    csv
  15.     ld    c,(ix+8)    ;Source bank
  16.     ld    b,(ix+12)    ;Destination bank
  17.     call    xmove        ;Set bank numbers
  18.     ld    e,(ix+6)    ;Source
  19.     ld    d,(ix+7)
  20.     ld    l,(ix+10)    ;Destination
  21.     ld    h,(ix+11)
  22.     ld    c,(ix+14)    ;Length
  23.     ld    b,0        ;(Can't be more than 128)
  24.     call    move        ;(Inter-bank) memory transfer
  25.     jp    cret
  26.  
  27. xmove:    jp    0
  28. move:    jp    0
  29.  
  30.