MAKEDIR84

(George Source)

Macros used: BXU, COMBRKIN, COMERRX, CREATEB, DOWN, ENDCOM, FINDNAME, FNORM, FREECORE, HUNT, MENDAREA, MFREE, MHUNT, MHUNTW, NAME, NAMETOP, SEG, SEGENTRY, TEST, TESTREP2, USERNORM

MAKEDIR84.txt
22FL          SEG      MAKEDIR,8,GEORGE PORTER,FILESTORE
22^=          SEGENTRY K1MAKEDIR,Z1MAKEDIR  
23DW    [   
23YG    [     THIS SEGMENT, ENTERED AT K1MAKEDIR ANALYZES THE PARAMETERS FOR THE
24D6    [     MAKEDIR COMMAND. IT THEN GOES DOWN TO NEWDIR WHICH DOES ALL THE HA
24XQ    NDIR           +1   
25CB                   +1   
25X2                   4HC1 
26BL    PS             4HPSEU   
26W=    PARAM   
27*W          SBX   7  FX1  
27TG          SPARAPASS 
28*6          MHUNT    1,CPB,CUNI   
28SQ          LDX   0  ANUM(1)  
29#B          ADX   7  FX1  
29S2          EXIT  7  0
2=?L    [   
2=R=    XCOMERR 
2?=W          COMERRX  0(3) 
2?QG    [   
2#=6    [   
2#PQ    Z1MAKEDIR      [COMMAND ENTRY   
2*9B    [   
2*P2          CALL  7  PARAM               [GET FIRST PARAMETER 
2B8L          BNG   0  NPAR                [ERROR IF NO PARAMETERS  
2BN=          NAMETOP  1,FILE,FNAME 
2C7W ...      FNORM    1
2CMG          TESTREP2 NAMEFORM,NAME
2D76          MHUNT    1,FILE,FNAME 
2DLQ          NAMETOP  1,CPB,CUNI          [RENAME FOR POSSIBLE ERROR USE   
2DPW ...      MHUNT    3,FILE,FABSNB
2DT2 ...      LDX   0  A1(3)
2DY6 ...      SBN   0  4
2F3= ...      BZE   0  USERONLY 
2F6B          FINDNAME                     [EXPAND FABSNB FOR OPEN ON DIR   
2FL2          TESTREP2 NOUSER,NOUSER
2G5L          MHUNT    2,FILE,FABSNB
2GK=          LDX   0  A1(2)               [IF REC. HEAD. > 388 THEN DEPTH > 64 
2H4W          SBN   0  389                 [WHICH IS THE MAX. DEPTH OF DIRECTORY
2HJG          BPZ   0  TOODEEP             [CREATEABLE IN MAKEDIR COMMAND   
2J46          SMO      A1(2)
2JHQ          ADN   2  A1-3                [LOCATE LAST HALF OF LAST LOCAL NAME 
2K3B          LDX   0  1(2)                [GEN 
2KH2          BZE   0  TLAN                [DEFAULT SETTING 
2L2L          SBN   0  1
2LG=          BNZ   0  NDET                [WRONG GENERATION
2L^W    TLAN  LDX   0  2(2)                [LANG
2MFG          BZE   0  MLND                [ALL DEFAULT SO PUT IN STANDARD  
2M^6          SBX   0  NDIR+2(1)
2NDQ          BNZ   0  NDET                [WRONG LANGUAGE  
2NYB    MLND
2PD2          ADN   1  NDIR 
2PXL          MOVE  1  3                   [OVERWRITE WITH LANGUAGE C1 ETC. 
2QC=          CALL  7  PARAM               [GET 2ND PARAM   
2QWW          BNG   0  NUSER               [J IF NO 2ND PARA
2RBG          BZE   0  NPAR                [J IF NULL   
2RW6          LDN   0  2
2S*Q          USERNORM 0
2STB          TESTREP2 OK,USER  
2T*2 ...      BRN      XERUSER  
2TSL    NUSER FREECORE 1                   [OTHERWISE FREE CUNI BLOCK AND GO DOW
2W#=          DOWN     NEWDIR,2            [MAKE UP A USERNAME  
2WRW          BRN      XBK  
2X?G          BRN      TEST 
2XR6    USER
2Y=Q          HUNT     1,CPB,CUNI   
2YQB          NAMETOP  1,FILE,FNAME        [RENAME FOR ERROR USE, DISTINGUISH FR
2^=2          CREATEB  3                      [SET UP A CREATE BLOCK
2^PL          MHUNTW   1,FILE,ADICT 
329=          LDN   2  A1(1)
32NW          ADN   3  CEUSE1   
338G          MOVE  2  3                   [PUT GIVEN USERNAME IN CREATE BLOCK  
33N6          FREECORE 1
347Q          CALL  7  PARAM               [GET THIRD PARAMETER 
34MB          BPZ   0  PSEUD               [J IF THERE IS ONE   
3572          FREECORE 1                   [OTHERWISE FREE CUNI BLOCK AND GO DOW
35LL          DOWN     NEWDIR,3            [SET UP A DICTIONARY ENTRY   
366=          BRN      XBK  
36KW          BRN      TEST 
375G    PSEUD LDX   6  APARA(1) 
37K6          LDX   1  FX1  
384Q          BXU   6  PS(1),WRNGP         [ERROR IF THIRD PARA IS NOT PSEUDO   
38JB          MFREE    CPB,CUNI 
3942          DOWN     NEWDIR,4            [GO DOWN TO SET UP DICTIONARY ENTRY  
39HL          BRN      XBK  
3=3=    TEST
3=GW    NAME  ENDCOM
3?2G    XBK   COMBRKIN  
3?6C ...XERUSER 
3?=# ...      CALL  3  XCOMERR  
3?B9 ...               +ERUSERFORM  
3?G6    NPAR
3?^Q          CALL  3  XCOMERR  
3#FB                   +JPARMIS 
3#^2    TOODEEP 
3*DL          CALL  3  XCOMERR  
3*Y=                   +ERTOODEEP   
3BCW    NDET
3BXG          CALL  3  XCOMERR  
3CC6                   +ERDIRDET
3CWQ    WRNGP   
3DBB          CALL  3  XCOMERR  
3DW2                   +APFERR  
3F*L    NOUSER  
3FT=          CALL  3  XCOMERR  
3G3G ...               +ERNAME  
3G9Q ...USERONLY
3GD2 ...      CALL  3  XCOMERR  
3GL= ...               +ERNOLOCNAME 
3GSG    [   
3H#6          MENDAREA 10,K99MAKEDIR
3HRQ    #END
^^^^ ...17224207000500000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1