home *** CD-ROM | disk | FTP | other *** search
- 100 REM REL<>SEQ CONVERTER, DAVID WILLIMAS, 1983
- 110 :
- 120 REM THIS PROGRAM CAN BE USED TO GENERATE A SEQUENTIAL DISK FILE CONTAINING
- 130 REM ALL THE INFORMATION IN A RELATIVE FILE, OR TO RE-CONVERT THE SEQUENTIAL
- 140 REM FILE TO A RELATIVE ONE. IT SHOULD BE USEFUL IN COPYING REL. FILES
- 150 REM (ESPECIALLY ON SINGLE DISK DRIVES), OR IN UP/DOWNLOADING INFORMATION IN
- 160 REM RELATIVE FILES TO BULLETIN BOARD SYSTEMS.
- 170 :
- 180 REM THE PROGRAM SHOULD WORK ON ALL COMMODORE COMPUTERS AND DISK DRIVES
- 190 REM EXCEPT FOR VERY OLD DRIVES WITH DOS 1.0.
- 200 :
- 210 DIM X$(1000)
- 220 CLOSE 15:OPEN 15,8,15
- 230 PRINT "รด1. REL TO SEQ"
- 240 PRINT "2. SEQ TO REL"
- 250 PRINT "3. QUIT"
- 260 PRINT "WHICH ? ";
- 270 INPUT#15,E,E$,E1,E2
- 280 GET G$:IF G$<"1" OR G$>"3" THEN 280
- 290 PRINT G$
- 300 IF G$="3" THEN CLOSE 15:END
- 310 ON VAL(G$) GOTO 340,720
- 320 GOTO 220
- 330 :
- 340 INPUT "NAME OF REL FILE";RN$
- 350 PRINT "DRIVE NUMBER ? ";
- 360 GET D1$:IF D1$<"0" OR D1$>"1" THEN 360
- 370 PRINT D1$
- 380 CLOSE 1:OPEN 1,8,5,D1$+":"+RN$
- 390 INPUT#15,E,E$,E1,E2
- 400 IF E THEN PRINT E$:CLOSE 1:GOTO 340
- 410 INPUT "NAME OF SEQ FILE";SN$
- 420 PRINT "DRIVE NUMBER ? ";
- 430 GET D2$:IF D2$<"0" OR D2$>"1" THEN 430
- 440 PRINT D2$
- 450 CLOSE 2:OPEN 2,8,6,D2$+":"+SN$+",S,W"
- 460 INPUT#15,E,E$,E1,E2
- 470 IF E THEN PRINT E$:CLOSE 2:GOTO 410
- 480 FOR I=255 TO 1 STEP -1
- 490 PRINT#15
- 500 INPUT#15,E,E$,E1,E2:IF E=0 THEN LE=I:I=1
- 510 NEXT
- 520 I=1
- 530 RL=255 AND I:RH=INT(I/256)
- 540 PRINT#15,"P"+CHR$(5)+CHR$(RL)+CHR$(RH)+CHR$(1)
- 550 INPUT#15,E,E$,E1,E2:IF E THEN RN=I-1:GOTO 570
- 560 I=I+1:GOTO 530
- 570 PRINT#2,"ENCODED RELATIVE FILE. DECODE WITH PROGRAM 'REL<>SEQ CONV.'";CHR$(13);
- 580 PRINT#2,LE;CHR$(13);RN;CHR$(13);
- 590 FOR I=1 TO RN
- 600 L$=""
- 610 RL=255 AND I:RH=INT(I/256)
- 620 FOR J=1 TO LE
- 630 PRINT#15,"P"+CHR$(5)+CHR$(RL)+CHR$(RH)+CHR$(J)
- 640 GET#1,G$:IF G$="" THEN G$=CHR$(0)
- 650 L$=L$+G$
- 660 NEXT
- 670 PRINT#2,L$;
- 680 NEXT
- 690 CLOSE1:CLOSE2
- 700 GOTO 230
- 710 :
- 720 INPUT "NAME OF SEQ FILE";SN
- 730 PRINT "DRIVE NUMBER ? ";
- 740 GET D2$:IF D2$<"0" OR D2$>"1" THEN 740
- 750 PRINT D2$
- 760 CLOSE 2:OPEN 2,8,6,D2$+":"+SN$+",S,R"
- 770 INPUT#15,E,E$,E1,E2
- 780 IF E THEN PRINT E$:CLOSE 2:GOTO 720
- 790 INPUT "NAME OF REL FILE";RN$
- 800 PRINT "DRIVE NUMBER ? ";
- 810 GET D1$:IF D1$<"0" OR D1$>"1" THEN 810
- 820 PRINT D1$
- 830 INPUT#2,G$
- 840 INPUT#2,LE
- 850 INPUT#2,RN
- 860 FOR I=1 TO RN
- 870 X$(I)=""
- 880 FOR J=1 TO LE
- 890 GET#2,G$:IF G$="" THEN G$=CHR$(0)
- 900 X$(I)=X$(I)+G$
- 910 NEXT J,I
- 920 CLOSE2
- 930 RL=255 AND RN:RH=INT(RN/256)
- 940 CLOSE 1:OPEN 1,8,5,D1$+":"+RN$+",L,"+CHR$(LE)
- 950 INPUT#15,E,E$,E1,E2
- 960 IF E THEN PRINT E$:CLOSE 1:GOTO 790
- 970 PRINT#15,
- 980 PRINT#1,"X";
- 990 FOR I=1 TO RN
- 1000 RL=255 AND I:RH=INT(I/256)
- 1010 PRINT#15,"P"+CHR$(5)+CHR$(RL)+CHR$(RH)+CHR$(1)
- 1020 PRINT#1,X$(I);
- 1030 NEXT I
- 1040 CLOSE 1
- 1050 GOTO 230
-