 .PAGE 'ADDFIL'
; ADD FILE TO DIRECTORY
 .SKIP
ADDFIL LDA SA ;SAVE VARIABLES 
 PHA
 LDA LINDX
 PHA
 LDA SECTOR
 PHA
 LDA TRACK
 PHA
 LDA #IRSA
 STA SA
 JSR CURBLK ;USE LAST ACCESSED SEARCH
 LDA TYPE
 PHA
 LDA FILDAT
 AND #1
 STA DRVNUM
 LDX JOBNUM
 EOR LSTJOB,X
 LSR A
 BCC AF08 ;SAME DRIVE AS REQUIRED
 .SKIP
 LDX #1
 STX DELIND ;LOOK FOR DELETED ENTRY
 JSR SRCHST
 BEQ AF15 ;ALL FULL, NEW SECTOR 
 BNE AF20 ;FOUND ONE
 .SKIP
AF08 LDA DELSEC
 BEQ AF10 ;DELETED ENTRY NOT LOCATED
 CMP SECTOR
 BEQ AF20 ;SECTOR IS RESIDENT
 STA SECTOR
 JSR DRTRD ;READ SECTOR IN
 JMP AF20
 .SKIP
AF10 LDA #1 ;FIND DELETED ENTRY
 STA DELIND
 JSR SEARCH
 BNE AF20
AF15 JSR NXDRBK ;ALL FULL, NEW SECTOR
 LDA SECTOR
 STA DELSEC
 LDA #2
 STA DELIND
AF20 LDA DELIND
 JSR SETPNT
 PLA
 STA TYPE ;SET TYPE
 CMP #RELTYP
 BNE AF25
 ORA #$80
AF25
 JSR PUTBYT
 PLA
 STA FILTRK ;...TABLE & ENTRY
 JSR PUTBYT
 PLA
 STA FILSEC ;SET SECTOR LINK IN...
 JSR PUTBYT ;...TABLE & ENTRY
 JSR GETACT
 TAY
 LDA FILTBL
 TAX
 LDA #16
 JSR TRNAME ;TRANSFER NAME
 LDY #16
 LDA #0 ;CLEAR # OF BLOCKS &...
AF30 STA (DIRBUF),Y ;...& REPLACE LINKS
 INY
 CPY #27
 BCC AF30
 LDA TYPE ;A RELATIVE FILE ?
 CMP #RELTYP
 BNE AF50 ;NO
 LDY #16 ;YES
 LDA TRKSS ;GET SS TRACK
 STA (DIRBUF),Y ;PUT IN DIRECTORY
 INY
 LDA SECSS ;GET SS SECTOR
 STA (DIRBUF),Y ;PUT IN
 INY
 LDA REC ;GET RECORD SIZE
 STA (DIRBUF),Y
AF50 JSR DRTWRT ;WRITE IT OUT
 PLA
 STA LINDX
 TAX
 PLA
 STA SA
 LDA DELSEC
 AND #$1F
 STA FILENT
 LDA DELIND
 AND #$E0
 ORA FILENT
 STA FILENT
 STA DIRENT,X
 LDA TYPE
 ASL A
 AND #$1E
 ORA DRVNUM
 STA FILDAT
 RTS
;
 .END
