Using KSAM/XL and KSAM 64 (32650-90886)

262 AppendixB
BASIC/V Intrinsics
BKWRITE
NOTE
Items written to a KSAM file from a BASIC program are concatenated;
rounding to halfword boundaries does not occur.
Figure B-13. is an example of writing one string and one integer array to each record of the
KSAM file.
Figure B-13. Writing to a KSAM File with BKWRITE
10 DIM S$[4]
20 DIM N$[26]
30 DIM M$[72]
40 INTEGER A[10]
50 DIM B$[12]
55 INTEGER J
60 DIM B1$[1]
65 DIM B2$[2]
70 INTEGER A2[2],A3[3],A5[5]
80 REM
90 REM THE KSAM/3000 FILE WAS BUILT WITH:
100 REM REC=-80,16,F,ASCII
110 REM KEY=B,2,2,,DUP
120 REM SO,RECORD LENGTH IS 2 BYTES, FIXED, TYPE ASCII, 16 REC/BLOCK.
130 THE KEY IS 2 CHARACTERS LONG,STARTING IN CHARACTER 2 OF RECORD
135 REM
.
.
.
430 REM ********************************************************
440 REM * WRITE TO A KSAM FILE *
450 REM ********************************************************
460 REM
470 REM ASSIGN VALUES TO OUTPUT VARIABLES
480 REM
490 FOR I=1 TO 5
500 A[I]=I
510 NEXT I
520 RS="123"
530 REM
540 REM F IS THE FILE NUMBER OF A KSAM FILE
550 REM OPENED BY A CALL TO BKOPEN
560 REM
570 REM NOTE THAT ONLY THREE BYTES "123" ARE WRITTEN FROM B$
580 REM WHEREAS TEN WORDS ARE WRITTEN FROM NUMERIC ARRAY A.
620 REM
630 REM THREE IDENTICAL RECORDS ARE BEING OUTPUT SO THAT
640 REM SUBSEQUENT EXAMPLES OF THIS PROGRAM WILL EXECUTE
650 REM .
660 FOR I=1 TO 3
670 CALL BKWRITE(F,S$,BS,A[*])
680 REM
690 REM NOW DETERMINE WHETHER THIS CALL SUCCEEDED
700 REM
710 IF S$[1;1]<>"0" THEN DO
720 REM N$ CONTAINS THE NAME OF THE KSAM FILE