%RK:BOOTGEN% 30.11.88 VERSION 7
GLOBAL MAIN
  EQUALS IOREAD=0,IOWRIT=1
  EQUALS BUFSIZ=256

  EQUALS ADOFF=&0C,LNOFF=&0E

  EQUALS ROOTX=&12

LOCALS LMAIN
  USE ACR:STRUCT,FIL:STRUCT,LIB:PARAMS
  BUFFERS BUFFER(BUFSIZ+2)
  DATA ENDX=BUFSIZ
  DATA PARCB=
    BYTES IOLAB[1],IODIR[1]
    DATA IOBUFF=!BUFFER,IOLENG,IOSECT

  DATA STRTAD,STRTLN
  DATA PFI
  DATA PPAT,PN

PROGRAM MAIN()
  !#AZC(0)=<<"&".0.0.1.TA."SYSTEM TO UPDATE".0>>,120
  IF CSV START 1['LBLIBR',,'LIBASK'.XAX.<1 THEN STOP ,
  IOLAB:=#AZC(1):

  DPC <<"*".HO."*RK BOOTSTRAP TUNING*".0>>

  IOBUFF(ENDX):=0
  IODIR:=0

  IOSECT=2 ; IOLENG=1[0
  CALL :IO PARCB\

  IOSECT=IOBUFF('ROOTX+1')[IOBUFF('ROOTX'):.CCA.<1 ; IOLENG=ENDX
  CALL :IO PARCB\

  PFI=IOBUFF-&20
  (WHILE
    $PFI=&20
    (IF PFI-IOBUFF>=IOLENG
      $IOSECT=IOLENG:
      CALL :IO PARCB\
      PFI=IOBUFF
    IF)
    (IF @PFI:=
      DPC <<LF."-STARTER:U NOT FOUND".0>> ; DPQ "!" ; STOP 1
    IF)
    =,0
    PPAT=<<"STARTER:U ".0>> ; PN=PFI+14
    (WHILE @PPAT:<>
      IF @PN[.CAA.<> THEN =,.LNE.
      $PPAT=1 ; $PN=1
    WHILE)
  WHILE) ^E<

  STRTAD=PFI(3)[PFI(2):.CCA. ; STRTLN=PFI(5)[PFI(4):

  IOLENG=1[0 ; IOSECT=0
  CALL :IO PARCB\

  IOBUFF('ADOFF')=STRTAD.XAA. ; IOBUFF('LNOFF')=STRTLN.XAA.

  IODIR:=1
  CALL :IO PARCB\

  STOP 0
