;*********************************
;* NEWSS: GENERATE NEW SS & FIX  *
;*        OLD SS'S TO REFLECT IT.*
;*   VARS:                       *
;*   REGS:                       *
;*                               *
;*********************************
;
NEWSS
 JSR NXTTS ;GET T&S BASED ON HDR
 JSR DBLBUF ;USE INACTIVE BUFFER
 JSR SCRUB
 JSR GETACT
 PHA
 JSR CLRBUF
 LDX LINDX
 LDA SS,X ;SET REGS FOR TRANSFER
 TAY
 PLA
 TAX
;
; <BIG FILES CHANGE>
;
 LDA R0 ;CHK IF BEGINS A NEW GROUP
 CMP #NSSL-1 ;MAX SS #
 BCC NEWSS1 ;BR IF NOT AT MAX
 LDA #255 ;SET SWITCH
 STA R0 ;*
 LDA #0 ;SET SIDE SECTOR # = 00
 JSR SETPNT ;*
 LDY #2 ;*
 STA (DIRBUF),Y ;*
 LDX LINDX ;MOVE IN RECRD SIZE
 LDA RS,X ;*
 INY ;*
 STA (DIRBUF),Y ;*
 INY
 BNE NEWSS2 ;BRA
NEWSS1
;   <END>
;
 LDA #SSIOFF ;# OF CHARS
 JSR B0TOB0 ;TRANSFER AT BUF(0)
;
 LDA #0
 JSR SSDIR
 LDY #2
 LDA (DIRBUF)Y ;GET SS #
 PHA
 LDA #0
 JSR SETPNT
 PLA
 CLC
 ADC #1
 STA (DIRBUF)Y ;PUT SS # IN NEW SS
 ASL A
 ADC #4
 STA R3 ;SAVE POSITION
 TAY
 SEC
 SBC #2
 STA R4
NEWSS2
 LDA TRACK
 STA R1 ;SAVE FOR SS UPDATE
 STA (DIRBUF)Y ;PUT TRACK IN SS
 INY
 LDA SECTOR
 STA R2 ;SAVE FOR SS UPDATE
 STA (DIRBUF)Y ;PUT SECTOR IN SS
 LDY #0
 LDA #255 ;END OF CHAIN <HD>
 STA (DIRBUF)Y ;NULL LINK
 INY
 LDA #SSIOFF+1 ;PTR TO LAST BYTE
 STA (DIRBUF)Y
;
 LDA #SSIOFF
 JSR SETPNT
 JSR WRTAB ;WRITE SS 0 OF NEW GROUP
 JSR WATJOB
;
NS20
 LDX LINDX
 LDA SS,X ;GET SS BUFFER #
 PHA
 JSR GAFLGS
 LDX LINDX
 STA SS,X ;SWAP ACT-BUF & SS
 PLA
 LDX LBUSED
 STA BUF0,X
;
 LDA #0
 JSR SETPNT ;SET LINK TO NEW SS
 LDY #0
 LDA SECTOR ;<HD>
 STA (DIRBUF)Y
 INY
 LDA TRACK ;<HD>
 STA (DIRBUF)Y
;
;  <BIG FILES CHANGE>
;
 LDA R0 ;CHK IF NEW GROUP
 CMP #255 ;*
 BNE NS50 ;BR IF NOT
 LDA TRACK ;SAVE T&S OF NEW SS
 PHA ;*
 LDA SECTOR ;*
 PHA ;*
 JSR WRTOUT ;WRITE OLD LAST SS
 JSR WATJOB ;WAIT FOR IT
 JSR DBLBUF ;RESET ACTIVE BUFFER
 JSR RDSSSA ;READ SUPER SIDE SECTOR
 INC R5 ;BUMP THE GROUP NUMBER
 LDA R5 ;GROUP #
 ASL A ;*2
 CLC ;INDEX INTO SSS
 ADC #GRP0 ;*
 JSR SETSSP ;POINT TO IT
 PLA ;RETRIEVE SECTOR
 JSR PUTSS ;STORE SECTOR ADD OF NEW SS
 PLA ;GET TRACK ADDR
 JSR PUTSS ;STORE IT TOO
 JSR WRTSSS ;WRITE THE SSS OUT
 LDA R5 ;GET IT
 PHA
 JMP RDSS1D ;READ THE NEW SS BACK IN & RTS
;
; <END>
;
NS40
 JSR GETACT
 LDX LINDX
 JSR IBRD ;READ NEXT SS
 LDA #0
 JSR SETPNT ;PTR=0
NS50
 DEC R4
 DEC R4
 LDY R3 ;GET NEW SS LINK PTR
 LDA R1
 STA (DIRBUF)Y ;PUT TRACK IN
 INY
 LDA R2
 STA (DIRBUF)Y ;PUT SECTOR IN
;
 JSR WRTOUT ;WRITE IT BACK...
 JSR WATJOB ;...& WAIT
 LDY R4
 CPY #3
 BCS NS40 ;MORE SS TO UPDATE!
;
 JMP DBLBUF ;RESET ACTIVE BUFFER
 .END
