{{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