10 CALL CLEAR
20 PRINT "RUN this program to create aload program that loads and runs EA5, EA3, BASIC, and   XB programs from DISK       or HARD DRIVE."
30 PRINT :"STEP #1: Put in the Path of the DV80 USER file that     will create the LOAD program"
40 PRINT :"STEP #2: Put in the path    where to catalog a drive andwant the LOAD program to be saved and used"
50 PRINT :"STEP #3: If done then press ENTER, if you want to add   more directorys put in path"
60 PRINT :"STEP #4: When done you pressENTER then the LOAD program is created and saved to the disk in path"
70 CALL KEY("",5,K,S) :: CALL CLEAR
150 CALL VERSION(V) :: IF V<2020 THEN PRINT "VERSION TO OLD TO CONTINUE!" :: END160 DISPLAY AT(1,3)ERASE ALL :"RXB CREATES A LOAD PROGRAM"
170 CALL HPUT(5,3,"EXAMPLE:",7,3,"PATHNAME:DSK1.",9,3,"PATHNAME:DSK.DISKNAME.",11,3,"PATHNAME:WDS1.DIR.")
180 CALL HPUT(13,3,"PATHNAME:WDS1.DIR.SUB-DIR.",15,3,"PATHNAME:WDS.VOL.DIR.")
190 CALL HPUT(17,3,"PATHNAME:WDS.VOL.DIR.SUB-DIR.",19,3,"(Where to save result.)",23,3,"PATHNAME:")
200 ACCEPT AT(23,10)BEEP :M$ :: E$=CHR$(13) :: S$=CHR$(34) :: Q$=RPT$(S$,2)
210 CALL CLEAR :: PRINT "Creating USER file DV80-LOAD"
220 OPEN #1:M$&"DV80-LOAD",VARIABLE 80,DISPLAY ,OUTPUT
230 PRINT #1:"NEW"&CHR$(13)
235 PRINT #1:"CALL QUITON"&CHR$(13)
240 PRINT #1:"100 ! RXB LOAD PROGRAM"&E$
250 PRINT #1:"110 @=1 :: DIM P$(48),Y$(48),T(48)"&E$
260 PRINT #1:"120 @=1::CALL VERSION(V) :: IF V<2020 THEN PRINT "&S$&"VERSION TO OLD TO CONTINUE!"&S$&" :: END"&E$
270 PRINT #1:"130 RESTORE"&E$
280 PRINT #1:"140 DISPLAY AT(1,3)ERASE ALL:"&S$&"RXB LOAD PROGRAM *"&S$&E$
290 PRINT #1:"150 DISPLAY AT(6,1):"&S$&"ACTIVE KEYS ARE:"&S$&":: DISPLAY AT(7,1):";
300 PRINT #1:S$&"E = UP CURSOR"&S$&":"&S$&"X = DOWN CURSOR"&S$&":";
310 PRINT #1:S$&"S = LEFT CURSOR"&S$&":"&S$&"D = RIGHT CURSOR"&S$&E$
320 PRINT #1:"160 DISPLAY AT(14,1):"&S$&"SPACE BAR = NEXT PAGE"&S$&": :"&S$&"C = DIRECTORY"&S$&": :"&S$&"1-9 = CATALOG DISK"&S$;
330 PRINT #1:" :: CALL HPUT(24,3,"&S$&"PLEASE WAIT..."&S$&")"&E$
340 PRINT #1:"170 IF @ THEN CALL HPUT(24,3,"&S$&"PRESS ANY KEY TO CONTINUE!"&S$&")::CALL BEEP::CALL KEY("&Q$&",3,K,S)::@=0"&E$
350 PRINT #1:"180 CALL CLEAR::E$=CHR$(13)::N=1"&E$
360 PRINT #1:"190 Y=1::Z=3::CALL CHAR(128,"&S$&"080C0EFFFF0E0C08"&S$&",129,"&S$&"103070FFFF703010"&S$&")"&E$
370 PRINT #1:"200 FOR C=4 TO 16 STEP 12 :: FOR R=1 TO 24"&E$
380 PRINT #1:"210 READ P$(N),Y$(N),T(N)"&E$
390 PRINT #1:"220 IF T(N)=0 THEN 260"&E$
400 PRINT #1:"230 CALL HPUT(R,C,Y$(N))::IF C=4 THEN CALL HPUT(R,1,CHR$(T(N))) ELSE CALL HPUT(R,32,CHR$(T(N)))"&E$
410 PRINT #1:"240 N=N+1::IF N=49 THEN N=48::GOTO 260"&E$
420 PRINT #1:"250 NEXT R::NEXT C"&E$
430 PRINT #1:"260 CALL HCHAR(Y,Z,128,1,Y,Z+11,129)"&E$
440 PRINT #1:"270 CALL KEY(3,K,S)::IF K=67 THEN CALL CLEAR::INPUT "&S$&"PATH:"&S$&":X$::CALL CAT(X$)::CALL KEY("&Q$&",3,K,S)::GOTO 130"&E$
450 PRINT #1:"280 CALL HCHAR(Y,Z,32,1,Y,Z+11,32) :: IF K>48 AND K<58 THEN CALL CAT(K) :: CALL KEY("&Q$&",3,K,S)::GOTO 130"&E$
460 PRINT #1:"290 IF K=69 OR K=11 THEN S=Y::Y=Y-1::GOSUB 390::IF G=32 THEN Y=S"&E$
470 PRINT #1:"300 IF K=88 OR K=10 THEN S=Y::Y=Y+1::GOSUB 390::IF G=32 THEN Y=S"&E$
480 PRINT #1:"310 IF K=83 OR K= 8 THEN Z=3"&E$
490 PRINT #1:"320 IF K=68 OR K=9 THEN Z=15::CALL GCHAR(Y,Z+1,G)::IF G=32 THEN Z=3"&E$
500 PRINT #1:"330 IF K=32 THEN 340 ELSE 360"&E$
510 PRINT #1:"340 Y=1::IF POS(P$(N),"&S$&"!........!"&S$&",1) THEN 130"&E$
520 PRINT #1:"350 GOTO 180"&E$
530 PRINT #1:"360 IF K=13 THEN 420"&E$
540 PRINT #1:"370 IF K=43 OR K=61 THEN N,X=0::GOTO 140"&E$
550 PRINT #1:"380 GOTO 260"&E$
560 PRINT #1:"390 IF Y<1 THEN Y=24"&E$
570 PRINT #1:"400 IF Y>24 THEN Y=1"&E$
580 PRINT #1:"410 CALL GCHAR(Y,Z+1,G)::RETURN"&E$
590 PRINT #1:"420 IF Z=15 THEN T$=P$(24+Y)&Y$(24+Y)ELSE T$=P$(Y)&Y$(Y)"&E$
600 PRINT #1:"430 IF Z=3 THEN CALL GCHAR(Y,1,S) ELSE CALL GCHAR(Y,32,S)"&E$
610 PRINT #1:"440 IF S=1 THEN CALL EALR(T$) ELSE IF S=5 THEN CALL EA(T$) ELSE IF S=4 THEN CALL XB(T$)"&E$
620 PRINT #1:"450 IF S=9 THEN CALL USER(T$)::END"&E$
640 CALL CLEAR :: ON ERROR 670
660 DELETE M$&"LOAD"
670 DISPLAY AT(1,1)ERASE ALL :"* INPUT DIRECTORY FOR LIST *"
680 CALL HPUT(5,3,"EXAMPLE:",7,3,"PATHNAME:DSK1.",9,3,"PATHNAME:DSK.DISKNAME.",11,3,"PATHNAME:WDS1.DIR.")
690 CALL HPUT(13,3,"PATHNAME:WDS1.DIR.SUB-DIR.",15,3,"PATHNAME:WDS.VOL.DIR.")
700 CALL HPUT(17,3,"PATHNAME:WDS.VOL.DIR.SUB-DIR.",19,3,"PATHNAME:(ENTER TO EXIT)",23,3,"PATHNAME:")
710 ACCEPT AT(23,10)BEEP :_$
720 X=0 :: IF LEN(_$)=0 THEN 1120
730 DIM TYPE$(6),F$(128)
740 TYPE$(1)="DIS/FIX"
750 TYPE$(2)="DIS/VAR"
760 TYPE$(3)="INT/FIX"
770 TYPE$(4)="INT/VAR"
780 TYPE$(5)="PROGRAM"
790 TYPE$(6)="DIRECTORY"
800 OPEN #2:_$,INPUT ,INTERNAL,FIXED 38
810 INPUT #2:A$,J,J,K
820 CALL CLEAR :: DISPLAY _$;" -  DISKNAME= ";A$:"AVAILABLE= ";K;" USED= ";J-K
830 DISPLAY :"FILENAME   SIZE    TYPE    P":"---------- ---- ---------- -";
840 INPUT #2:A$,I,J,K
850 T=ABS(I) :: IF LEN(A$)=0 THEN GOSUB 1030 :: GOTO 670
860 DISPLAY : :A$;TAB(12);J;TAB(17);TYPE$(ABS(I));
870 IF ABS(I)=5 THEN 910
880 IF ABS(I)=6 THEN 930
890 B$="  "&STR$(K)
900 DISPLAY SEG$(B$,LEN(B$)-2,3);
910 IF I>0 THEN 930
920 DISPLAY TAB(28);"Y";
930 IF T=4 AND K=254 THEN 1010
940 IF T=5 THEN 950 ELSE 960
950 PRINT :: DISPLAY AT(24,1)BEEP :"XB or EA program? (X/E/ )  ?" :: GOSUB 1020 :: IF W=88 THEN T=4 :: GOTO 1010 ELSE IF W=69 THEN 1010 ELSE IF W=32 THEN 960 ELSE 950
960 IF T=2 AND K=80 THEN 970 ELSE 990
970 PRINT :: DISPLAY AT(24,1)BEEP :"BATCH  ( B/ ) ?" :: GOSUB 1020 :: IF W=66 AND K=80 THEN T=9 :: GOTO 1010
980 IF W=86 AND K=80 THEN 1010 ELSE IF W=32 THEN 840 ELSE 970
990 IF T=1 AND K=80 THEN 1000 ELSE 840
1000 PRINT :: DISPLAY AT(24,1)BEEP :"EA OBJECT FILE? (Y/N) ?" :: GOSUB 1020 :: IF W=89 THEN 1010 ELSE IF W=78 THEN 840 ELSE 1000
1010 X=X+1 :: F$(X)=A$&","&STR$(T) :: GOTO 840
1020 CALL KEY("",3,W,S) :: RETURN
1030 PRINT : :"! Creating program list.": :"PLEASE WAIT..."
1040 IF X=0 THEN 1090
1050 FOR Y=1 TO X
1060 PRINT #1:STR$(1000+@)&" DATA "&_$&","&F$(Y)&E$
1070 @=@+1
1080 NEXT Y
1090 PRINT #1:E$
1100 CLOSE #2
1110 RETURN
1120 CALL CLEAR :: PRINT "PLEASE WAIT..."
1130 @=@+1
1140 PRINT #1:STR$(1000+@)&" DATA !........!,"&Q$&",0"&E$
1150 PRINT #1:"SAVE "&M$&"LOAD,IV254"&E$
1160 PRINT #1:"! New loader on disk and"&E$
1170 PRINT #1:"! named LOAD, USER finished."&E$
1180 PRINT #1:"! Please delete file:       "&M$&"DV80-LOAD"&E$
1190 PRINT #1:"CALL KEY("&CHR$(34)&CHR$(34)&",K,S)"&E$
1200 PRINT #1:"CALL XB("&CHR$(34)&M$&"LOAD"&CHR$(34)&")"&E$
1210 CALL USER(M$&"DV80-LOAD")
