image of READY prompt

Wang2200.org

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"