Listing of file='IDS2PC02' on disk='vmedia/701-2725B.wvd.zip'
# Sector 560, program filename = 'IDS2PC02' 1000 REM "IDS2PC02" - 7/10/81 - DATA FILE CONVERSION FROM IDEAS1 TO IDEAS2 1110 COM D9$(15)3 : COM E9$(9)8 : COM D1$(34)3,E3$(249)8,D6$8,C7$8,C8$8,P7,P8 : COM E1$(24)56,F1$(24)80 : DIM D1$3,D3$(256)1,D4$(24)83,D5$(256)1,D2$4,D4$6,D2$(16)3,C1$16,C2$64,D5$ 80,D7$8,D8$8,D9$8,C3$1,F9$(24)62 : MAT REDIM F$(2250)1 1150 MAT REDIM D4$(9)83 : D9$="IDS2fs " : A=(R0-#PART)/16+1 : IF A>0THEN CONVERT ATO STR(D9$,7,2),(##) : DATA LOAD DC OPEN T#2,D9$ : DATA LOAD DC #2,D4$() : D9$()=STR(D4$(),#PART*45-17,45) : MAT REDIM D4$(24)83 : IF F6$(17)<"^"THEN SELECT @PART"IDS2SUBM" : GOSUB '32("IDS2sC00") : F,P7,E3,E4=0 1170 F=F+1 1180 F1=0 : F6$(52)="N" : E3$=HEX(1F) : GOSUB '34(F) : IF E6$=HEX(1F)THEN 2030 : ON FGOTO 1190,1200,1260,1270,1290,1300 1190 D6$,D7$=E$ : GOTO 1170 1200 GOSUB 1870 : IF F1=1THEN 1180 : D1$(1)=E$ : SELECT #6<D1$(1)> : OR (D7$,20) : LIMITS T#6,D7$,F8,A2,A2,A2 : DATA LOAD BA T#6,(F8)D3$() : IF STR(D3$(),24,1)>"2"THEN 1240 : IF STR(D3$(),121,8)<>D6$THEN 1250 : STR(D4$(),,256)=D3$() : C3$=STR(D3$(),20,1) : IF C3$>"1"THEN STR(D1$(),7,21)=STR(D3$(),94,21) : D1$(2)=STR(D3$(),9,3) : GOSUB '45(3,D1$(2)) : GOTO 1170 1240 C2$="Converting the primary file will convert all alternates" : GOSUB '35(C2$) : GOSUB '45(1,STR(D3$(),12,8)) : F=0 : GOTO 1170 1250 C1$="Either "&D6$ : C2$="is not an IDEAS file or "&D1$(1)&" is not its control file address" : GOSUB '63(C1$,C2$,"!") : F=0 : GOTO 1170 1260 D1$(2)=E$ : GOSUB 1870 : IF F1=1THEN 1180 : D1$(2)=E$ : GOTO 1170 1270 C7$,C8$=STR(E$,,8) : GOSUB '45(5,D9$(5)) : GOTO 1170 1280 D5$="Files with the same name cannot be opened on the same platter." : GOSUB '35(D5$) : F=0 : GOTO 1170 1290 GOSUB 1870 : IF F1=1THEN 1180 : D1$(10)=E$ : SELECT #5<D1$(10)> : GOTO 1170 1300 GOSUB 1870 : IF F1=1THEN 1180 : D1$(11)=E$ : IF C7$<>D6$THEN 1310 : IF D1$(1)=D1$(10)OR D1$(2)=D1$(11)THEN 1280 1310 PRINT HEX(0E);AT(23,0);"Press 'RETURN' to accept screen, 'EDIT' to modify ";HEX(0F); : GOSUB '34(250) : IF Q=31THEN 2030 : IF Q<>33THEN 1340 : F=0 : GOTO 1170 1340 IF C3$>"1"THEN GOSUB 1780 : D3$()=D4$() : D4$()=ALL(00) : STR(D4$(),,1)=HEX(E3) : STR(D4$(),2,8)=C8$ : STR(D4$(),105,3)=D1$(11) : STR(D4$(),82,8)=C8$ : STR(D4$(),217,1)=STR(D3$(),20,1) : D5$()=D3$() : SELECT #6<D1$(2)> : LIMITS T#6,D6$,A9,A2,A2,A2 : DATA LOAD DA T#6,(A9)D1$,D2$,R1 : CONVERT R1TO STR(D4$(),201,8),(########) : SELECT #6<D1$(1)> : GOSUB 1460 1360 STR(D4$(),90,3)=STR(D3$(),75,3) : STR(D4$(),93,4)=STR(D3$(),78,4) : STR(D4$(),218,4)=STR(D3$(),90,4) : STR(D4$(),254,21)=STR(D3$(),94,21) : STR(D4$(),16,6)=STR(D3$(),115,6) : STR(D4$(),275,128)=" " : IF STR(D3$(),129,8)<>HEX(20)THEN GOSUB 1680 1380 STR(D4$(),63,11),STR(D4$(),75,3),STR(D4$(),79,3),STR(D4$(),209,8)=ALL(20) : STR(D4$(),11,5),STR(D4$(),62,1),STR(D4$(),74,1),STR(D4$(),78,1)=ALL(30) 1390 DATA LOAD DA T#6,(F8+1)F9$() : MAT SEARCHF9$(),=HEX(000000)TO D1$STEP 11 : A8=(VAL(D1$,2)-1)/11 : FOR J=1TO A8 : UNPACK(######)STR(F9$(),11*J-10,3)TO A3 : CONVERT A3TO D4$,(######) : $UNPACK(F=HEX(100110031002))D4$TO A4,A5,A6 : IF A4=1THEN E3=E3+A6 : IF A4=2THEN E4=E4+A6 1410 D4$=BIN(A5*16,2)&ALL(00) : IF A4=1THEN A7=3 : IF A4=1AND A6=1THEN A7=0 : IF A4=2THEN A7=6 : IF A4=3THEN A7=7 : C3$=BIN(A7*2) : OR (STR(D4$,2,1),C3$) : BIN(STR(D4$,3,1))=A6 : IF A4=1THEN OR (STR(D4$,2,1),01) : STR(D4$(),6*J+493,6)=D4$ : NEXT J 1420 CONVERT E3TO STR(D4$(),97,4),(####) : CONVERT E4TO STR(D4$(),101,4),(####) : OR (C7$,20) : DATA SAVE DC OPEN T#5,(18)C7$ : ERRORX=ERR : IF X=83THEN DATA LOAD DC OPEN T#5,C7$ : ELSE STOP "Unexpected error at 1410" 1430 DATA SAVE DC #5,D4$() : IF STR(D3$(),129,8)=HEX(20)THEN 1440 : E$=C7$ : GOSUB 1750 : C7$=E$ : DATA LOAD DC OPEN T#5,C7$ : DSKIP #5,1 1440 MAT REDIM D4$(24)83 : D4$()=ALL(20) : FOR J=1TO A8 : STR(D4$(),8*J-7,8)=STR(F9$(),11*J-7,8) : NEXT J : DATA SAVE DC #5,D4$() : DATA SAVE DC #5,END : DATA SAVE DC CLOSE#5 : E8=2075 : E9=2250 : E9$(1)=C8$ : R3$(1)="IDS2PC03" : LOAD T#2,"IDS2PF11"1000, 1460 STR(D4$(),10,1)=STR(D5$(),24,1) : ADD(STR(D4$(),10,1),01) : STR(D4$(),108,85)=ALL(20) : STR(D4$(),108,8)=STR(D5$(),25,8) : STR(D4$(),124,1)=STR(D5$(),33,1) : STR(D4$(),117,3)=STR(D5$(),34,3) 1470 STR(D4$(),121,2)=STR(D5$(),38,2) : STR(D4$(),123,1)=STR(D5$(),40,1) : STR(D4$(),125,8)=STR(D5$(),41,8) : STR(D4$(),141,1)=STR(D5$(),49,1) : STR(D4$(),134,3)=STR(D5$(),50,3) : STR(D4$(),138,2)=STR(D5$(),54,2) : STR(D4$(),140,1)=STR(D5$(),56,1) : STR(D4$(),142,8)=STR(D5$(),57,8) 1490 STR(D4$(),158,1)=STR(D5$(),65,1) : STR(D4$(),151,3)=STR(D5$(),66,3) : STR(D4$(),155,2)=STR(D5$(),70,2) : STR(D4$(),157,1)=STR(D5$(),72,1) : STR(D4$(),193,2)=STR(D5$(),73,2) : N9,A9=0 : CONVERT STR(D5$(),38,2)TO F4 : CONVERT STR(D5$(),54,2)TO F5 : ERRORF5=0 : GOTO 1520 1510 CONVERT STR(D5$(),70,2)TO F6 : ERRORF6=0 : GOTO 1520 1520 IF STR(D5$(),40,1)>"1"THEN 1530 : IF STR(D5$(),56,1)<>"1"THEN 1540 : IF STR(D5$(),72,1)<>"1"THEN 1550 : GOTO 1590 1530 IF STR(D5$(),40,1)<>"2"THEN 1660 : IF STR(D5$(),56,1)<>"2"THEN 1630 : IF STR(D5$(),72,1)<>"2"THEN 1640 : GOTO 1650 1540 IF STR(D5$(),56,1)<>"2"THEN 1570 : IF STR(D5$(),72,1)<>"2"THEN 1600 : GOTO 1610 1550 IF STR(D5$(),72,1)<>"2"THEN 1580 : GOTO 1620 1570 L9=INT((F4+1)/2)+F5+F6 : N9=F4 : GOTO 1670 1580 L9=INT((F4+F5+1)/2)+F6 : N9=F4+F5 : GOTO 1670 1590 L9=INT((F4+F5+F6+1)/2) : N9=F4+F5+F6 : GOTO 1670 1600 F5=MOD(F4,2)+F5 : L9=INT(F4/2)+F5-INT(F5/4)+F6 : N9=F4 : A9=F5 : GOTO 1670 1610 F6=MOD(F4,2)+F5+F6 : L9=INT(F4/2)+F6-INT(F6/4) : N9=F4 : A9=F6 : GOTO 1670 1620 F6=MOD(F4+F5,2)+F6 : L9=INT((F4+F5)/2)+F6-INT(F6/4) : N9=F4+F5 : A9=F6 : GOTO 1670 1630 L9=F4-INT(F4/4)+F5+F6 : A9=F4 : GOTO 1670 1640 L9=F4+F5-INT((F4+F5)/4)+F6 : A9=F4+F5 : GOTO 1670 1650 L9=F4+F5+F6-INT((F4+F5+F6)/4) : A9=F4+F5+F6 : GOTO 1670 1660 L9=F4+F5+F6 1670 CONVERT L9TO STR(D4$(),199,2),(##) : CONVERT N9TO STR(D4$(),195,2),(##) : CONVERT A9TO STR(D4$(),197,2),(##) : IF C3$>"1"OR R1>65535THEN A4=3 : ELSE A4=2 : CONVERT A4TO STR(D4$(),231,1),(#) : CONVERT L9+A4TO STR(D4$(),227,2),(##) : RETURN 1680 MAT SEARCHSTR(D3$(),129,128),=HEX(2020202020202020)TO D1$STEP 8 : A2=(VAL(D1$,2)-1)/8 : IF A2=0THEN A2=16 : GOSUB 1690 : RETURN 1690 GOSUB '32("IDS2sC02") : FOR J=1TO A2 : D7$=STR(D3$(),8*J+121,8) : GOSUB '45(2*J-1,D7$) : OR (D7$,20) : LIMITS T#6,D7$,A9,A3,A3,A3 : DATA LOAD BA T#6,(A9)D5$() : D2$(J)=STR(D5$(),9,3) : GOSUB '45(2*J,D2$(J)) : NEXT J : F=0 1710 F1=0 : F=F+1 : IF F=2*A2+1THEN 1740 : GOSUB '34(F) : IF MOD(F,2)=1THEN D8$=E$ : IF MOD(F,2)=1THEN 1710 : GOSUB 1870 : IF F1=1THEN 1720 : IF D8$=STR(D3$(),4*F+121,8)AND D2$(F/2)=E$THEN 1730 : STR(D4$(),4*F+267,8)=D8$ : D1$(18+F/2)=E$ : GOTO 1710 1720 F=F-1 : GOTO 1710 1730 F=F-2 : GOSUB '35("File name or address must be changed!") : GOTO 1710 1740 PRINT AT(23,0);"Press 'RETURN' to accept screen, 'EDIT' to modify" : GOSUB '34(250) : IF Q=32THEN RETURN : IF Q<>33THEN 1740 : F=0 : GOTO 1710 1750 MAT REDIM D4$(6)83 : FOR J=1TO A2 : GOSUB 1770 : C7$,STR(D4$(),2,8)=STR(D4$(),8*J+267,8) : STR(D4$(),105,3)=D1$(J+18) : OR (C7$,20) : DATA SAVE DC OPEN T#5,(4)C7$ : ERRORX=ERR : IF X=83THEN DATA LOAD DC OPEN T#5,C7$ : ELSE STOP "Unexpected error" 1760 DATA SAVE DC #5,D4$() : DATA SAVE DC #5,END : DATA SAVE DC CLOSE#5 : NEXT J : RETURN 1770 C7$=STR(D3$(),8*J+121,8) : OR (C7$,20) : LIMITS T#6,C7$,F8,A3,A3,A3 : DATA LOAD BA T#6,(F8)D5$() : GOSUB 1460 : RETURN 1780 GOSUB '32("IDS2sC01") : D5$="IDEAS1 Volume ----" : CONVERT C3$TO P8 : FOR J=1TO P8-1 : CONVERT J+1TO STR(D5$,15,1),(#) : STR(D5$,6,1)="1" : PRINT HEX(0F);AT(J+8,1);D5$ : STR(D5$,6,1)="2" : PRINT AT(J+8,45);D5$ : GOSUB '45(J,STR(D1$(),3*J+4,3)) : NEXT J : F=0 1800 F=F+1 : IF F=P8THEN 1820 1810 F1=0 : GOSUB '34(F) : GOSUB 1870 : IF F1=1THEN 1810 : J5=F+8 : SELECT #J5<E$> : GOTO 1800 1820 F=7 1830 F=F+1 : IF F=P8+7THEN 1850 1840 F1=0 : GOSUB '34(F) : GOSUB 1870 : IF F1=1THEN 1840 : D1$(F+4)=E$ : J5=F+1 : SELECT #J5<E$> : GOTO 1830 1850 PRINT AT(23,0);"Press 'RETURN' to accept screen, 'EDIT' to modify" : GOSUB '34(250) : IF Q=31THEN 2030 : IF Q=32THEN RETURN : IF Q<>33THEN 1850 : F=0 : GOTO 1800 1870 IF POS("3BD"=STR(E$,1,1))>0THEN 1890 : ELSE PRINT AT(23,0,80);HEX(07);"Invalid - First character must be '3' , ' B' , or 'D'."; : GOTO 2020 1890 IF POS("123567"=STR(E$,2,1))>0THEN 1900 : ELSE PRINT AT(23,0,80);HEX(07);"Invalid - Second character must be '1', ' 2', '3', '5', '6', or '7'."; : GOTO 2020 1900 IF POS("012345"=STR(E$,3,1))>0THEN 1910 : ELSE PRINT AT(23,0,80);HEX(07);"Invalid - Third character must be '0', '1 ', '2', '3', '4', or '5'."; : GOTO 2020 1910 MAT SEARCH"310320330B10B20B30350360370B50B60B70D10D11D12D13D14D15D50D51D5 2D53D54D55D20D21D22D23D24D25D60D61D62D63D64D65D30D31D32D33D34D35D70D71D72 D73D74D75",=STR(E$,1,3)TO D3$STEP 3 : PRINT AT(23,0,80);HEX(0F06); 1920 IF D3$<>HEX(0000)THEN 1930 : PRINT AT(23,0);HEX(07);E$;" is not a valid disk address supported by IDEA S. Enter new device address."; : GOTO 2020 1930 SELECT #6<E$> : $OPEN 1950,#6 : GOTO 1960 1950 $CLOSE#6 : F1=1 : PRINT AT(22,0,80);HEX(07);"Device ";E$;" is not currently available. Ple ase check status and/or address.";AT(23,0);"Key 'RETURN' to continue"; : KEYIN D1$ : PRINT AT(22,0,80);AT(23,0,80); : F=F-1 1960 IF D1$(1)<>" "THEN SELECT #6<D1$(1)> : $CLOSE#6 : RETURN 1970 ON ERRORD1$,D2$GOTO 1980 1980 IF D1$<>"P48"THEN 1990 : PRINT AT(23,0,80);HEX(07);E$;" is not currently in the master device tabl e of your CPU. Please try again."; : GOTO 2020 1990 IF STR(D1$,2,2)<"90"OR STR(D1$,2,2)>"98"THEN 2000 : PRINT AT(23,0,80);"Disk error";D1$;" on device ";E$;". Make sure that dev ice is ready.";HEX(0107); : GOTO 2020 2000 PRINT AT(23,0,80);"Unanticipated error # ";D1$;" at line # ";D2$;". No r ecovery has been programmed.";HEX(0107); : STOP "ERROR !" 2020 F1=1 : RETURN 2030 LOAD T#2,"IDS2PC05"1000, 3699 ON ERRORE1$,E2$GOTO 3700 3700 DEFFN'31 : E$="IDS2PC02" : IF E5$<"Y"THEN LOAD T#2,"IDS2PER1"1000, : STOP "ERROR"