{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: MAKEDIR84)}} ====== MAKEDIR84 ====== (George Source) **Macros used:** [[george:macro:BXU|BXU]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERRX|COMERRX]], [[george:macro:CREATEB|CREATEB]], [[george:macro:DOWN|DOWN]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FINDNAME|FINDNAME]], [[george:macro:FNORM|FNORM]], [[george:macro:FREECORE|FREECORE]], [[george:macro:HUNT|HUNT]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TEST|TEST]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:USERNORM|USERNORM]] 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