410 PRINT#CC,”U1:”C0;D;T;S
415 GOSUB 1000:IF E THEN 1900
420 PRINT#CC,”B-P:”C0;FP%(CF)+RP
425 GOSUB 500 :REM UPDATE FIELD
430 PRINT#CC,”U2:”C0;D;T;S
435 GOSUB 1000:IF E THEN 1900
440 RETURN
450 REM **************************
451 REM READ FIELD(CF) OF RECORD CR, SINGLE FIELD READ
452 REM
455 GOSUB 900
460 PRINT#CC,”U1:”C0;D;T;S
470 GOSUB 1000:IF E THEN 1900
475 GOSUB 600 :REM READ FIELD
480 RETURN
500 REM **************************
501 REM UPDATE FIELD(CF), B-P IS SET
502 REM
510 IF FT%(CF)<>1 THEN 520
515 A$=RIGHT$(SP$+STR$(F(CF)),FS%(CF)):GOTO 530
520 A$=LEFT$(F$(CF)+SP$,FS%(CF))
530 PRINT#C0,A$;M$
535 RETURN
600 REM **************************
601 REM READ FIELD(CF), B-P IS SET
602 REM
610 IF FT%(CF) THEN 645
615 A1$=””
620 FOR J=1 TO FS%(CF)
625 GET#C0,A$:IF A$=”” THEN A$=CHR$(0)
630 A1$=A1$+A$
635 NEXT:F$(CF)=A1$
640 GET#C0,A$:RETURN
645 INPUT#C0,F$(CF)
650 IF FT%(CF)<>1 THEN RETURN
655 F(CF)=VAL(F$(CF)):RETURN
700 REM **************************
701 REM ALLOCATE ONE BLOCK, T&S =REQUESTED TRACK & SECTOR
702 REM RETURNED T&S ARE ALLOCATED VALUES (T=18 IS SKIPPED)
703 REM
710 GOSUB 800:IF E THEN 1900: REM CHECK T & S
715 PRINT#CC,”B-A:”D;T;S
720 INPUT#CC,EN,EM$,ET,ES
725 IF EN=0 THEN RETURN
730 IF EN<>65 THEN 1900
735 IF ET=18 THEN T=19:S=0:GOTO 715
736 T=ET:S=ES
740 GOTO 715
750 REM *************************
751 REM FREE ONE BLOCK, T & S = TRACK & SECTOR
752 REM
760 GOSUB 800:IF E THEN 1900: REM CHECK T & S
770 PRINT#CC,”B-F:”D;T;S
780 INPUT#CC,EN,EM$,ET,ES
785 IF EN=0 THEN RETURN
790 GOTO 1900
800 REM *************************
801 REM CHECK MAX SECTOR
802 REM
810 IF T>35 THEN 1900
820 E=0:IF T=0 THEN T=40:GOTO 1900: REM ORIGINAL LINE READ... E=0:IFT=0THEN=40:GOTO1900
840 A3=16:IF T>30 THEN 880
850 A3=17:IF T>24 THEN 880
860 A3=19:IF T>17 THEN 880
870 A3=20
880 IF S>A3 THEN 1900
890 RETURN
87