.LIBRARY /SYS$LIBRARY:LIB/ $DVIDEF $FIBDEF $FATDEF $FCHDEF $ATRDEF .PSECT DATA, NOEXE, WRT, RD, PIC FAOI: .ASCID /The largest contiguous space is !UL blocks./ FAOO: .ASCID / / NAME_OF_FILE:.ASCID / / DISK: .ASCID / / ;Default disk CHANNEL: .WORD 0 ; Channel store IOSB: .QUAD 0 ITMLST: ; Getdvi Item list .WORD 4 ; 4 bytes of data .WORD DVI$_MAXBLOCK ; Maximum number of blocks .ADDRESS MAXBLOCK ; Fill in the largest ; Space on disk .LONG 0 ; No need for return length .LONG 0 ; End of list MAXBLOCK: .LONG 0 ; Hold Maxblocks here FIBDESC: .LONG FIB$C_LENGTH .ADDRESS FIB FIB: .BLKB FIB$C_LENGTH FILEATTR: .WORD ATR$S_RECATTR ; File Attributes list .WORD ATR$C_RECATTR .ADDRESS ATTRIBUTES UCHAR: ; Characteristics of the file .WORD ATR$S_UCHAR .WORD ATR$C_UCHAR .ADDRESS CHARACTERISTICS .LONG 0 ; End of list ATTRIBUTES: .BYTE 0 ; Fill by bit pushing .BYTE FAT$M_NOSPAN .WORD 0 ; Variable length records .QUAD 0 ; Fill area .LONG 0 ; Fill area No relation to Fixed ; records .WORD 512 ; Maximum record size .WORD 0 ; Default Extent quantity .WORD 0 ; Global Buffer Count .BLKB 6 ; 6 spare bytes .WORD 0 ; Version limit (directory only) CHARACTERISTICS: .LONG 0 ; A contiguous file PROMPT: .ASCID /DISK: / FILENAME: .ASCID /CONTIG.TST;1/ ; .PSECT CODE, EXE, NOWRT .ENTRY ACP, ^M<> PUSHAB DISK PUSHAB PROMPT PUSHAB DISK CALLS #3, G^LIB$GET_INPUT ; Get the name of the disk BLBS R0, 10$ ; Check for error RET ; And return it 10$: $ASSIGN_S DEVNAM=DISK, - ; Get the channel to the disk CHAN=CHANNEL BLBS R0, 12$ RET 12$: $GETDVI_S CHAN=CHANNEL, - ; Get the device info ITMLST=ITMLST BLBS R0, 13$ RET 13$: MOVL #^X40004, - FIB+FIB$W_DID ; Fill the Directory ID MOVL #FIB$M_WRITETHRU, - ; Write File Header to disk FIB+FIB$L_ACCTL INSV #FAT$C_VARIABLE, - ; Set the Record type #FAT$V_RTYPE, - #FAT$S_RTYPE, - ATTRIBUTES INSV #FAT$C_SEQUENTIAL, - ; Sequential records #FAT$V_FILEORG, - #FAT$S_FILEORG, - ATTRIBUTES ; Specify a contiguous file MOVL #FCH$M_CONTIG!FCH$M_NOBACKUP!FCH$M_MARKDEL, - CHARACTERISTICS MOVL MAXBLOCK, FIB+FIB$L_EXSZ MOVW - #FIB$M_EXTEND!FIB$M_ALCON!FIB$M_ALCONB!FIB$M_FILCON!FIB$M_ALDEF, - FIB+FIB$W_EXCTL MOVL #FIB$M_WRITETHRU, FIB+FIB$L_ACCTL $QIOW_S CHAN=CHANNEL, - ; Access the file/Create FUNC=#IO$_CREATE!IO$M_CREATE!IO$M_EXTEND, - IOSB=IOSB, - ; Check Create status P1=FIBDESC, - ; Address of FIB P2=#FILENAME, - ; Address of Filename P3=#NAME_OF_FILE,- P4=#NAME_OF_FILE,- P5=#FILEATTR ; File Attributes BLBS R0, 15$ RET 15$: BLBS IOSB, 16$ CMPW #SS$_DEVICEFULL, IOSB BEQL 16$ MOVZWL IOSB, R0 RET 16$: $FAO_S CTRSTR=FAOI, - OUTBUF=FAOO, - P1= PUSHAB FAOO CALLS #1, G^LIB$PUT_OUTPUT $QIOW_S CHAN=CHANNEL, - FUNC=#IO$_DELETE!IO$M_DELETE, - IOSB=IOSB,- P1=FIBDESC,- P2=#NAME_OF_FILE MOVZWL IOSB, -(SP) $DASSGN_S CHAN=CHANNEL POPR #^M RET .END ACP