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 / ZSYS / SIMTEL20 / ZCPR3 / SETFILE.MAC < prev    next >
Text File  |  2000-06-30  |  2KB  |  108 lines

  1. ;
  2. ; Program: SETFILE
  3. ; Author: Richard Conn
  4. ; Version: 1.0
  5. ; Date: 5 Mar 84
  6. ;
  7. version    equ    10
  8.  
  9. ;
  10. ;    SETFILE defines the name of a ZCPR3 File Name or displays it.
  11. ;
  12.  
  13. ;
  14. ; Equates for Key Values
  15. ;
  16. z3env    SET    0f400h    ;address of ZCPR3 environment
  17. fnum    equ    5ch+1    ;file number in 1st FCB
  18. fcb    equ    6ch    ;2nd FCB
  19. cr    equ    0dh
  20. lf    equ    0ah
  21.  
  22. ;
  23. ; External Z3LIB and SYSLIB Routines
  24. ;
  25.     ext    z3init,getfn1,print,pfn1,moveb,qprint,cout
  26.  
  27. ;
  28. ; Environment Definition
  29. ;
  30.     if    z3env ne 0
  31. ;
  32. ; External ZCPR3 Environment Descriptor
  33. ;
  34.     jmp    start
  35.     db    'Z3ENV'    ;This is a ZCPR3 Utility
  36.     db    1    ;External Environment Descriptor
  37. z3eadr:
  38.     dw    z3env
  39. start:
  40.     lhld    z3eadr    ;pt to ZCPR3 environment
  41. ;
  42.     else
  43. ;
  44. ; Internal ZCPR3 Environment Descriptor
  45. ;
  46.     MACLIB    Z3BASE.LIB
  47.     MACLIB    SYSENV.LIB
  48. z3eadr:
  49.     jmp    start
  50.     SYSENV
  51. start:
  52.     lxi    h,z3eadr    ;pt to ZCPR3 environment
  53.     endif
  54.  
  55. ;
  56. ; Start of Program -- Initialize ZCPR3 Environment and Print Banner
  57. ;
  58.     call    z3init    ;initialize the ZCPR3 Environment
  59.     call    qprint
  60.     db    'SETFILE, Version '
  61.     db    (version/10)+'0','.',(version mod 10)+'0',cr,lf,0
  62. ;
  63. ; Check Number of File
  64. ;
  65.     lxi    h,0        ;init count
  66.     lxi    d,11        ;size of each file name
  67.     lda    fnum        ;get number
  68.     sui    '0'        ;convert to binary
  69.     jc    error
  70.     jz    error
  71.     cpi    5        ;range?
  72.     jc    selfile
  73. ;
  74. ; Print Error Message
  75. ;
  76. error:
  77.     call    print
  78.     db    ' Invalid File Name Number (not 1-4)',0
  79.     ret
  80. ;
  81. ; Set Name of File
  82. ;
  83. selfile:
  84.     dad    d        ;compute offset from file name 1
  85.     dcr    a        ;count down
  86.     jnz    selfile
  87.     xchg            ;DE contains offset
  88.     call    getfn1        ;get ptr to shell file name
  89.     dad    d        ;get ptr to file name selected
  90.     lxi    d,fcb+1        ;pt to name in FCB
  91.     xchg            ;copy from FCB
  92.     mvi    b,11        ;11 bytes
  93.     mov    a,m        ;get first char
  94.     cpi    ' '        ;don't define if no name
  95.     cnz    moveb        ;define name if name given
  96. ;
  97. ; Print Name of Shell Variable File
  98. ;
  99.     call    print
  100.     db    ' File Name ',0
  101.     lda    fnum        ;get number
  102.     call    cout        ;print it
  103.     call    print
  104.     db    ' is ',0
  105.     jmp    pfn1
  106.  
  107.     end
  108.