 .PAGE 'NEWSS'
;*********************************
;* 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
 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
 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
 TYA
 STA (DIRBUF)Y ;NULL LINK
 INY
 LDA #SSIOFF+1 ;PTR TO LAST BYTE
 STA (DIRBUF)Y
;
 LDA #SSIOFF
 JSR SETPNT
 JSR WRTAB
 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 TRACK
 STA (DIRBUF)Y
 INY
 LDA SECTOR
 STA (DIRBUF)Y
 JMP NS50
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
