REM Build the files the suite writes to the server and reads back.
REM One buffer of pseudo random bytes is built once and written out at a
REM different starting point for each file, so the files differ from each
REM other without the interpreter having to produce every byte again.
ON ERROR PRINT REPORT$;" at line ";ERL : END
scrap$ = FNvar("LM98Test$Scrap")
IF scrap$ = "" THEN PRINT "Run SetUp first" : END
blk% = 65536
DIM buf% blk%
seed% = 12345
FOR i% = 0 TO blk% - 1
  REM kept inside sixteen bits: BASIC integers are signed 32 bit and a
  REM bigger multiplier overflows with "Number too big"
  seed% = (seed% * 8121 + 28411) AND &FFFF
  buf%?i% = (seed% >>> 5) AND &FF
NEXT
DIM name$(7), size%(7)
name$() = "a_1","a_1k","a_4k","a_60k_1","a_60k","a_60k1","a_250k","a_odd"
size%() = 1,1000,4096,61439,61440,61441,250000,98765
FOR f% = 0 TO 7
  file$ = scrap$ + "." + name$(f%)
  h% = OPENOUT(file$)
  IF h% = 0 THEN PRINT "Cannot create ";file$ : END
  start% = (f% * 4093) MOD blk%
  left% = size%(f%)
  WHILE left% > 0
    n% = blk% - start% : IF n% > left% THEN n% = left%
    SYS "OS_GBPB", 2, h%, buf% + start%, n%
    left% -= n%
    start% = 0
  ENDWHILE
  CLOSE#h%
  PRINT "  ";name$(f%);" (";size%(f%);" bytes)"
NEXT
PRINT "test data ready"
END
DEF FNvar(v$)
LOCAL b%, l%
DIM b% 256
SYS "XOS_ReadVarVal", v$, b%, 256, 0, 3 TO ,,l% ;flags%
IF (flags% AND 1) THEN = ""
b%?l% = 13
= $b%
