home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / zsys / simtel20 / z3lib / zlib2.lbr / Z3PFNX.Z80 < prev    next >
Encoding:
Text File  |  1986-02-07  |  1.1 KB  |  56 lines

  1. ;
  2. ; Z3LIB Module Name:  Z3PFNX
  3. ; Author:  Richard Conn
  4. ; Z3LIB  Version Number:  1.3
  5. ; Module Version Number:  1.1
  6. ;
  7.     public    putfnx
  8.  
  9.     ext    envptr
  10.  
  11. ;
  12. ;    PUTFNX sets the nth filename.typ to the FCB-entry pted to by HL
  13. ; (FCB+1 is pointed to by HL).  On input, A=1 to 4 and HL pts to FCB+1.
  14. ; On output, A=0 and Zero Flag set if input A was out of range.
  15. ;
  16. putfnx:
  17.     dec    a        ;check range
  18.     cp    4        ;0 to 3 is valid
  19.     jp    nc,pfnxerr
  20.     inc    a        ;set offset to 1-4 again
  21.     push    de
  22.     push    hl
  23.     push    af        ;save A
  24.     ld    hl,(envptr)    ;pt to environment
  25.     ld    de,52h        ;pt to file name entry
  26.     add    hl,de
  27.     ld    de,11        ;offset to next name
  28.     pop    af        ;get A
  29. pfnx1:
  30.     dec    a        ;count down
  31.     jp    z,pfnx2
  32.     add    hl,de        ;pt to next
  33.     jp    pfnx1
  34. pfnx2:
  35.     pop    de        ;get ptr to FCB+1
  36.     push    de
  37.     push    bc        ;save BC
  38.     ld    b,11        ;11 bytes from DE to HL
  39. pfnx3:
  40.     ld    a,(de)        ;copy
  41.     ld    (hl),a
  42.     inc    hl        ;pt to next
  43.     inc    de
  44.     dec    b        ;count down
  45.     jp    nz,pfnx3
  46.     pop    bc        ;restore regs
  47.     pop    hl
  48.     pop    de
  49.     or    0ffh        ;set NZ for OK
  50.     ret
  51. pfnxerr:
  52.     xor    a        ;error
  53.     ret
  54.  
  55.     end
  56.