diff --git a/src/syseng/klfedr.83 b/src/syseng/klfedr.84 similarity index 97% rename from src/syseng/klfedr.83 rename to src/syseng/klfedr.84 index dea24ae5..e72c1586 100755 --- a/src/syseng/klfedr.83 +++ b/src/syseng/klfedr.84 @@ -721,6 +721,48 @@ READF7: HRLOI T,-BUF(E) .IOT DKOC,T JRST READF0 +;CREATE COMMAND +CREATE: SKIPE FAKE + JRST [ HRROI T,[ASCIZ/CAN'T WRITE INTO FAKE FILE SYSTEM/] + MOVEM T,ERROR + JRST ERPNT ] + .CALL [ SETZ + SIXBIT /OPEN/ + [.WOV,,ALCH] + DIRDEV + DIRFN1 + DIRFN2 + SETZ DIRSNM ] + JRST CREAT0 + JRST [ HRROI T,[ASCIZ/FRONT-END DIRECTORY ALREAY EXISTS/] + MOVEM T,ERROR + JRST ERPNT ] + +CREAT0: .CLOSE ALCH, + MOVEI A,8*2000 ;SIZE OF DIRECTORY + PUSHJ P,CTGALC ;MAKE SUITABLE FILE + JRST FILERR + .CALL [ SETZ + 'RENAME + CTGDEV + CTGFN1 + CTGFN2 + CTGDIR + DIRFN1 + SETZ DIRFN2 ] + .VALUE + PUSHJ P,MAPDIR + .VALUE + MOVEI A,DIR + MOVE E,[-2,,-2] +CREAT1: MOVEM E,(A) ;FREE FILE SLOT + HLLZM E,1(A) + ADDI A,8 + CAMGE A,DIREND + JRST CREAT1 + JRST POPJ1 + + ;WRITE COMMAND WRITF: SKIPE FAKE @@ -1591,6 +1633,7 @@ CMDNAM: SIXBIT/DELETE/ SIXBIT/WRITE/ SIXBIT/FAKE/ SIXBIT/XFILE/ + SIXBIT/CREATE/ LCMDTB==.-CMDNAM CMDDSP: SETZ DELETE @@ -1606,6 +1649,7 @@ CMDDSP: SETZ DELETE SETZ WRITF SETZ FFAKE SETZ XFILE + CREATE IFN .-CMDDSP-LCMDTB, .ERR CMDDSP LOSES CMDHLP: [ASCIZ\DELETE A FRONT-END FILE\] @@ -1621,6 +1665,7 @@ CMDHLP: [ASCIZ\DELETE A FRONT-END FILE\] [ASCIZ\WRITE AN ITS FILE INTO A FRONT-END FILE OF SAME NAME\] [ASCIZ\ACCESS A FAKE FRONT-END FILE SYSTEM IN ANOTHER DIRECTORY\] [ASCIZ\EXECUTE COMMAND FILE\] + [ASCIZ\CREATE FRONT-END DIRECTORY\] IFN .-CMDHLP-LCMDTB, .ERR CMDHLP LOSES REWIND: PUSHJ P,TAPOPN