; ; SYSLIB Module Name: SZGPIN ; Author: Richard Conn ; SYSLIB Version Number: 2.1 ; Module Version Number: 1.0 ; Module Entry Points: ; ZGPINS ; Module External References: ; ZINIMC ZINIEXT ZCPRSET ZFNINIT ; MOVEB ; ; ; This SYSLIB subroutine is used to properly initialize all of ; the ZCPR2-specific routines based on the ZCPR2 Utility Standard ; General-Purpose Installation Format. ; ; ; The following equates define the relative addresses of ; the Installation Format Variables. ; .radix 16 ; use base 16 numbers (all numbers in Hex) base equ 103 ; beginning of variable area epavail equ base ; external path available flag epadr equ base+1 ; address of external path intpath equ base+3 ; address of beginning of 8-elt internal path mcavail equ base+14 ; multiple command line buffer available flag mcadr equ base+15 ; address of multiple command line buffer cindic equ base+51 ; current user/disk indicator dmadr equ base+52 ; default DMA address mdnames equ base+54 ; max number of directory names dnfile equ base+55 ; name of named directory file ; ; Internal Buffers for the Init ; dnfcb: ds 0C ; disk name fcb (12 BYTES) ; ; EXTERNALS ; EXT MOVEB ; COPY ROUTINE EXT ZINIMC ; MULTIPLE COMMAND LINE BUFFER INIT EXT ZINIEXT ; EXTERNAL PATH INIT EXT ZCPRSET ; CURRENT USER/DISK FLAG AND DMA ADDRESS EXT ZFNINIT ; NAMES.DIR AND MAX DIR COUNT INIT ; ; Beginning of init routine ; ZGPINS:: PUSH H ; SAVE REGS PUSH D PUSH B PUSH PSW ; ; INIT NAMES.DIR FILE NAME AND MAX NUMBER OF ENTRIES ; LXI H,DNFILE ; SET UP DISK NAME FCB LXI D,DNFCB+1 ; FN AND FT COPIED MVI B,0B ; 11 BYTES CALL MOVEB XRA A ; ZERO FIRST BYTE STA DNFCB LDA MDNAMES ; GET NUMBER OF NAMES ALLOWED MOV C,A ; ... IN C LXI H,DNFCB ; INIT NAMES.DIR FILE MVI A,0FF ; SET EVERYTHING CALL ZFNINIT ; DO INIT ; ; INIT CURRENT USER/DISK INDICATOR AND DMA ADDRESS ; LDA CINDIC ; GET INDICATOR LHLD DMADR ; GET DMA ADDRESS CALL ZCPRSET ; ; INIT EXTERNAL PATH ADDRESS ; LHLD EPADR ; PREP TO DECLARE EXTERNAL PATH LDA EPADR ; GET FLAG ORA A ; NZ = EXTERNAL PATH OK JNZ ZINI1 ; DO INIT LXI H,INTPATH ; PT TO INTERNAL PATH OTHERWISE ZINI1: CALL ZINIEXT ; INIT EXTERNAL PATH ; ; INIT MULTIPLE COMMAND LINE BUFFER PTRS ; LDA MCAVAIL ; GET FLAG LHLD MCADR ; GET ADDRESS ORA A ; SET FLAGS (0=NO) CNZ ZINIMC ; INIT MC LINE BUFFER IF DESIRED POP PSW ; RESTORE REGS POP B POP D POP H RET END