home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol090 / szgpins.mac < prev   
Encoding:
Text File  |  1984-04-29  |  2.4 KB  |  113 lines

  1. ;
  2. ;  SYSLIB Module Name:  SZGPIN
  3. ;  Author:  Richard Conn
  4. ;  SYSLIB Version Number:  2.1
  5. ;  Module Version Number:  1.0
  6. ;  Module Entry Points:
  7. ;    ZGPINS
  8. ;  Module External References:
  9. ;    ZINIMC        ZINIEXT        ZCPRSET        ZFNINIT
  10. ;    MOVEB
  11. ;
  12.  
  13. ;
  14. ;    This SYSLIB subroutine is used to properly initialize all of
  15. ; the ZCPR2-specific routines based on the ZCPR2 Utility Standard
  16. ; General-Purpose Installation Format.
  17. ;
  18.  
  19. ;
  20. ;    The following equates define the relative addresses of
  21. ; the Installation Format Variables.
  22. ;
  23.     .radix    16    ; use base 16 numbers (all numbers in Hex)
  24.  
  25. base    equ    103    ; beginning of variable area
  26. epavail    equ    base    ; external path available flag
  27. epadr    equ    base+1    ; address of external path
  28.  
  29. intpath    equ    base+3    ; address of beginning of 8-elt internal path
  30.  
  31. mcavail    equ    base+14    ; multiple command line buffer available flag
  32. mcadr    equ    base+15    ; address of multiple command line buffer
  33.  
  34. cindic    equ    base+51    ; current user/disk indicator
  35.  
  36. dmadr    equ    base+52    ; default DMA address
  37.  
  38. mdnames    equ    base+54    ; max number of directory names
  39. dnfile    equ    base+55    ; name of named directory file
  40.  
  41. ;
  42. ;  Internal Buffers for the Init
  43. ;
  44. dnfcb:
  45.     ds    0C    ; disk name fcb (12 BYTES)
  46.  
  47. ;
  48. ;  EXTERNALS
  49. ;
  50.     EXT    MOVEB    ; COPY ROUTINE
  51.     EXT    ZINIMC    ; MULTIPLE COMMAND LINE BUFFER INIT
  52.     EXT    ZINIEXT    ; EXTERNAL PATH INIT
  53.     EXT    ZCPRSET    ; CURRENT USER/DISK FLAG AND DMA ADDRESS
  54.     EXT    ZFNINIT    ; NAMES.DIR AND MAX DIR COUNT INIT
  55.  
  56. ;
  57. ;  Beginning of init routine
  58. ;
  59. ZGPINS::
  60.     PUSH    H    ; SAVE REGS
  61.     PUSH    D
  62.     PUSH    B
  63.     PUSH    PSW
  64.  
  65. ;
  66. ;  INIT NAMES.DIR FILE NAME AND MAX NUMBER OF ENTRIES
  67. ;
  68.     LXI    H,DNFILE    ; SET UP DISK NAME FCB
  69.     LXI    D,DNFCB+1    ; FN AND FT COPIED
  70.     MVI    B,0B        ; 11 BYTES
  71.     CALL    MOVEB
  72.     XRA    A        ; ZERO FIRST BYTE
  73.     STA    DNFCB
  74.     LDA    MDNAMES        ; GET NUMBER OF NAMES ALLOWED
  75.     MOV    C,A        ; ... IN C
  76.     LXI    H,DNFCB        ; INIT NAMES.DIR FILE
  77.     MVI    A,0FF        ; SET EVERYTHING
  78.     CALL    ZFNINIT        ; DO INIT
  79.  
  80. ;
  81. ;  INIT CURRENT USER/DISK INDICATOR AND DMA ADDRESS
  82. ;
  83.     LDA    CINDIC        ; GET INDICATOR
  84.     LHLD    DMADR        ; GET DMA ADDRESS
  85.     CALL    ZCPRSET
  86.  
  87. ;
  88. ;  INIT EXTERNAL PATH ADDRESS
  89. ;
  90.     LHLD    EPADR        ; PREP TO DECLARE EXTERNAL PATH
  91.     LDA    EPADR        ; GET FLAG
  92.     ORA    A        ; NZ = EXTERNAL PATH OK
  93.     JNZ    ZINI1        ; DO INIT
  94.     LXI    H,INTPATH    ; PT TO INTERNAL PATH OTHERWISE
  95. ZINI1:
  96.     CALL    ZINIEXT        ; INIT EXTERNAL PATH
  97.  
  98. ;
  99. ;  INIT MULTIPLE COMMAND LINE BUFFER PTRS
  100. ;
  101.     LDA    MCAVAIL        ; GET FLAG
  102.     LHLD    MCADR        ; GET ADDRESS
  103.     ORA    A        ; SET FLAGS (0=NO)
  104.     CNZ    ZINIMC        ; INIT MC LINE BUFFER IF DESIRED
  105.  
  106.     POP    PSW        ; RESTORE REGS
  107.     POP    B
  108.     POP    D
  109.     POP    H
  110.     RET
  111.  
  112.     END
  113.