Listing of file='PKBUFMAN' on disk='vmedia/701-2720C.wvd.zip'
# Sector 40, program filename = 'PKBUFMAN' 2700 DIM B0$(3)23, B2$(256)1, B9(5) 2701 GOTO 2920 2703 DEFFN'241(C1,STR(B0$(C1),1,8),STR(B0$(C1),16,1)) : IF STR(B0$(C1),16,1)<>"O"THEN 2706 : LIMITS TSTR(B0$(C1),1,8),B9(1),B9(2),B9(3) : ERRORDATA SAVE DC OPEN T(150)STR(B0$(C1),1,8) 2706 LIMITS TSTR(B0$(C1),1,8),B9(1),B9(2),B9(3) : ERRORSTOP "OPEN file not found"# 2707 STR(B0$(C1),12,2)=BIN(B9(1)+1,2) : STR(B0$(C1),14,2)=BIN(B9(2)-1,2) : STR(B0$(C1),19,2)=STR(B0$(C1),12,2) : STR(B0$(C1),21,2)=BIN(1,2) : IF STR(B0$(C1),16,1)="U"OR STR(B0$(C1),16,1)="I"THEN 2713 : RETURN 2713 DATA LOAD BA T(B9(1)+1)B2$() : ERRORGOTO 2716 2714 STR(B0$(C1),17,2)=STR(B2$(),1,2) : RETURN 2716 PRINT "Error number";ERR;"has occurred" : STOP 2718 DEFFN'242(C1) : IF STR(B0$(C1),16,1)="I"THEN 2725 : IF STR(B0$(C1),16,1)="O"THEN 2727 : X1=VAL(STR(B0$(C1),19,2),2) : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 2723 S1=0 : RETURN 2725 S1=0 : RETURN 2727 X1=VAL(STR(B0$(C1),19,2),2) : Y1=VAL(STR(B0$(C1),21,2),2) : IF Y1>255THEN 2734 : STR(B2$(),Y1,2)=BIN(0,2) : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 2732 S1=0 : RETURN 2734 IF Y1>256THEN 2736 : STR(B2$(),256,1)=BIN(0) 2736 DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 2737 X1=X1+1 : IF X1<=VAL(STR(B0$(C1),14,2),2)THEN 2741 : S1=9 : RETURN 2741 B2$()=ALL(FF) : STR(B2$(),1,2)=BIN(0,2) : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 2744 S1=0 : RETURN 2747 DEFFN'243(C1,S1) : IF STR(B0$(C1),16,1)="I"OR STR(B0$(C1),16,1)="U"THEN 2750 : STOP "READS illegal open mode"# 2750 X1=VAL(STR(B0$(C1),19,2),2) : Y1=VAL(STR(B0$(C1),21,2),2) : IF Y1<>257THEN 2758 : IF STR(B0$(C1),16,1)<>"U"THEN 2753 : IF STR(B0$(C1),23,1)<>"Y"THEN 2753 : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 : STR(B0$(C1),23,1)="N" 2753 X1=X1+1 : IF X1<=VAL(STR(B0$(C1),14,2),2)THEN 2754 : S1=9 : RETURN 2754 DATA LOAD BA T(X1)B2$() : ERRORGOTO 2716 2756 Y1=1 : GOTO 2772 2758 IF Y1<>256THEN 2766 : IF STR(B0$(C1),16,1)<>"U"THEN 2759 : IF STR(B0$(C1),23,1)<>"Y"THEN 2759 : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 : STR(B0$(C1),23,1)="N" 2759 STR(B1$(),1,1)=STR(B2$(),256,1) : X1=X1+1 : IF X1<=VAL(STR(B0$(C1),14,2),2)THEN 2761 : S1=9 : RETURN 2761 DATA LOAD BA T(X1)B2$() : ERRORGOTO 2716 2762 STR(B1$(),2,1)=STR(B2$(),1,1) : B1=VAL(STR(B1$(),1,2),2) : Y1=2 : GOTO 2774 2766 IF Y1<>255THEN 2772 : IF STR(B0$(C1),16,1)<>"U"THEN 2767 : IF STR(B0$(C1),23,1)<>"Y"THEN 2767 : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 : STR(B0$(C1),23,1)="N" 2767 B1=VAL(STR(B2$(),255,2),2) : X1=X1+1 : IF X1<=VAL(STR(B0$(C1),14,2),2)THEN 2769 : S1=9 : RETURN 2769 DATA LOAD BA T(X1)B2$() : ERRORGOTO 2716 2770 Y1=1 : GOTO 2774 2772 B1=VAL(STR(B2$(),Y1,2),2) : IF B1>1008THEN STOP "Illegal Record Size "# : Y1=Y1+2 2774 Y2=0 : IF B1<>0THEN 2778 : S1=1 : RETURN 2778 IF 257-Y1<B1-Y2THEN 2781 : STR(B1$(),Y2+1,B1-Y2)=STR(B2$(),Y1,B1-Y2) : Y1=Y1+B1-Y2 : GOTO 2787 2781 STR(B1$(),Y2+1,257-Y1)=STR(B2$(),Y1,257-Y1) : Y2=Y2+257-Y1 : IF STR(B0$(C1),16,1)<>"U"THEN 2783 : IF STR(B0$(C1),23,1)<>"Y"THEN 2783 : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 : STR(B0$(C1),23,1)="N" 2783 X1=X1+1 : IF X1<=VAL(STR(B0$(C1),14,2),2)THEN 2784 : S1=9 : RETURN 2784 DATA LOAD BA T(X1)B2$() : ERRORGOTO 2716 2785 Y1=1 : GOTO 2778 2787 STR(B0$(C1),19,2)=BIN(X1,2) : STR(B0$(C1),21,2)=BIN(Y1,2) : S1=0 : RETURN 2792 DEFFN'244(C1,B1,S1) : IF STR(B0$(C1),16,1)="O"THEN 2795 : STOP "WRITES illegal open mode"# 2795 X1=VAL(STR(B0$(C1),19,2),2) : Y1=VAL(STR(B0$(C1),21,2),2) : IF Y1<>257THEN 2804 : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 2799 X1=X1+1 : IF X1<=VAL(STR(B0$(C1),14,2),2)THEN 2800 : S1=9 : RETURN 2800 B2$()=ALL(00) : STR(B2$(),1,2)=BIN(B1,2) : Y1=3 : GOTO 2822 2804 IF Y1<>256THEN 2813 : STR(B8$,1,2)=BIN(B1,2) : STR(B2$(),256,1)=STR(B8$,1,1) : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 2808 X1=X1+1 : IF X1<=VAL(STR(B0$(C1),14,2),2)THEN 2809 : S1=9 : RETURN 2809 B2$()=ALL(00) : STR(B2$(),1,1)=STR(B8$,2,1) : Y1=2 : GOTO 2822 2813 IF Y1<>255THEN 2820 : STR(B2$(),255,2)=BIN(B1,2) : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 2816 X1=X1+1 : IF X1<=VAL(STR(B0$(C1),14,2),2)THEN 2817 : S1=9 : RETURN 2817 B2$()=ALL(00) : Y1=1 : GOTO 2822 2820 STR(B2$(),Y1,2)=BIN(B1,2) : Y1=Y1+2 2822 Y2=0 2823 IF B1-Y2>257-Y1THEN 2827 : STR(B2$(),Y1,B1-Y2)=STR(B1$(),Y2+1,B1-Y2) : Y1=Y1+B1-Y2 : GOTO 2834 2827 STR(B2$(),Y1,257-Y1)=STR(B1$(),Y2+1,257-Y1) : Y2=Y2+257-Y1 : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 2830 X1=X1+1 : IF X1<=VAL(STR(B0$(C1),14,2),2)THEN 2831 : S1=9 : RETURN 2831 B2$()=ALL(00) : Y1=1 : GOTO 2823 2834 STR(B0$(C1),19,2)=BIN(X1,2) : STR(B0$(C1),21,2)=BIN(Y1,2) : S1=0 : RETURN 2839 DEFFN'245(C1,R1,S1) : IF STR(B0$(C1),16,1)<>"O"THEN 2842 : STOP "READ illegal open mode"# 2842 X1=VAL(STR(B0$(C1),19,2),2) : Y1=VAL(STR(B0$(C1),21,2),2) : B9(1)=VAL(STR(B0$(C1),17,2),2) : B9(5)=(B9(1)+2)*(R1-1)+3 : B9(2)=INT((B9(5)-1)/256) : B9(3)=B9(5)-(B9(2)*256) : B9(4)=VAL(STR(B0$(C1),12,2),2) : B9(5)=VAL(STR(B0$(C1),14,2),2) : IF B9(2)+B9(4)>B9(5)OR R1<1THEN STOP "READ illegal record number "# 2851 IF B9(2)+B9(4)=X1THEN 2858 : IF STR(B0$(C1),16,1)="I"THEN 2856 : IF STR(B0$(C1),23,1)<>"Y"THEN 2856 : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 2855 STR(B0$(C1),23,1)="N" 2856 X1=B9(2)+B9(4) : DATA LOAD BA T(X1)B2$() : ERRORGOTO 2716 2858 B1$()=ALL(00) : X1=B9(2)+B9(4) : Y1=B9(3) : Y2=0 : B1=B9(1) : S1=1 2864 IF 257-Y1<B1-Y2THEN 2867 : STR(B1$(),Y2+1,B1-Y2)=STR(B2$(),Y1,B1-Y2) : Y1=Y1+B1-Y2 : GOTO 2876 2867 STR(B1$(),Y2+1,257-Y1)=STR(B2$(),Y1,257-Y1) : Y2=Y2+257-Y1 : IF STR(B0$(C1),23,1)<>"Y"THEN 2872 : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 2871 STR(B0$(C1),23,1)="N" 2872 X1=X1+1 : IF X1<=VAL(STR(B0$(C1),14,2),2)THEN 2873 : S1=9 : RETURN 2873 DATA LOAD BA T(X1)B2$() : ERRORGOTO 2716 2874 Y1=1 : GOTO 2864 2876 STR(B0$(C1),19,2)=BIN(X1,2) : STR(B0$(C1),21,2)=BIN(Y1,2) : S1=0 : RETURN 2881 DEFFN'246(C1,R1,S1) : IF STR(B0$(C1),16,1)="U"THEN 2884 : STOP "WRITE illegal open mode"# 2884 X1=VAL(STR(B0$(C1),19,2),2) : Y1=VAL(STR(B0$(C1),21,2),2) : B9(1)=VAL(STR(B0$(C1),17,2),2) : B9(5)=(B9(1)+2)*(R1-1)+3 : B9(2)=INT((B9(5)-1)/256) : B9(3)=B9(5)-(B9(2)*256) : B9(4)=VAL(STR(B0$(C1),12,2),2) : B9(5)=VAL(STR(B0$(C1),14,2),2) : IF B9(2)+B9(4)>B9(5)OR R1<1THEN STOP "WRITE illegal record number "# 2893 IF B9(2)+B9(4)=X1THEN 2898 : IF STR(B0$(C1),23,1)<>"Y"THEN 2896 : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 2896 X1=B9(2)+B9(4) : DATA LOAD BA T(X1)B2$() : ERRORGOTO 2716 2898 X1=B9(2)+B9(4) : Y1=B9(3) : Y2=0 : B1=B9(1) : S1=1 2903 IF B1-Y2>257-Y1THEN 2908 : STR(B2$(),Y1,B1-Y2)=STR(B1$(),Y2+1,B1-Y2) : STR(B0$(C1),23,1)="Y" : Y1=Y1+B1-Y2 : GOTO 2915 2908 STR(B2$(),Y1,257-Y1)=STR(B1$(),Y2+1,257-Y1) : Y2=Y2+257-Y1 : DATA SAVE BA T(X1)B2$() : ERRORGOTO 2716 2911 X1=X1+1 : IF X1<=VAL(STR(B0$(C1),14,2),2)THEN 2912 : S1=9 : RETURN 2912 DATA LOAD BA T(X1)B2$() : ERRORGOTO 2716 2913 Y1=1 : GOTO 2903 2915 STR(B0$(C1),19,2)=BIN(X1,2) : STR(B0$(C1),21,2)=BIN(Y1,2) : STR(B0$(C1),23,1)="Y" : S1=0 : RETURN 2920 X=X