Listing of file='IDS2PIX8' on disk='vmedia/701-2717B.wvd.zip'
# Sector 92, program filename = 'IDS2PIX8'
1001 REM "IDS2PIX8" - USED WITH START MODULE AT RUN TIME GIVEN DATE & USER ID
1002 COM R7$(1)80,R2$6,R4$3,R3$(10)9,R7$64,R8$1,R0,E(8),E8,E9,E,G,A,E0(8),E3$8
,E4$6,E0$8,F6$1,F2$8,F4$14,F5$8,E9$(9)8,E2$(250)9,E3$(249)8,E0$(249)1,B,D
,Q,F,F0,F9$2,R,C,H,W,U,F7$8,P,L,E$87,T,Z,E4$(16),N,E6$1,M,E8$(15)1,E8$16,
F0$64,O,S,V,E9$8,F8$2,I
1003 COM F6$(64)1,J,K,X,E7$8,F3$3,E1$8,E2$8,F6$1,Y,E$(E8)1,F$(E9)1,E6$(E)1,E1$
(G)56
: H=G
: FOR I=1TO 1716STEP 245
: READ STR(E$(),I)
: NEXT I
: $TRAN(E$(),HEX(22A2))R
: E4$=R2$
: DIM F0(6)
: R3$()=STR(E$(),131,8)
: FOR A=1TO 15
: IF STR(E$(),A*3+83,3)=" "THEN 1090
: SELECT #A<STR(E$(),A*3+83,3)>
: ERRORX=ERR
: GOTO 1310
1090 NEXT A
: HEXPACKE8$(7)FROMSTR(E$(),87,2)
: ERRORX=ERR
: GOTO 1310
1094 %SELECT #0<STR(E$(),95,3)>: ERROR X=ERR: GOTO 1310
1096 F4$=STR(E$(),86,3)&STR(E$(),2,8)&STR(E$(),101,3)
: F6$()=ALL(4E)
: STR(F6$(),11,4)="YYYY"
: F6$(15)=HEX(FF)
: F6$(53)="Y"
: R7$(1)=STR(E$(),147,64)
: IF R0>0AND R0<97AND MOD(R0-#PART,16)=0THEN 1200
: DATA LOAD DC OPEN T#2,"IDS2f001"
: ERRORGOTO 1152
1151 GOTO 1160
1152 DATA SAVE DC OPEN T#2,(3)"IDS2f001"
: ERRORPRINT HEX(0307)
: PRINT "Fatal error in IDEAS-2 Release 2.1 system program IDS2PIX3"
: PRINT "Start module unable to open necessary system file IDS2f001"
: END
1155 F0=1
: F0(1)=#ID
: R0=#PART
: $OPEN #2
: DATA SAVE DC #2,F0,F0()
: DATA SAVE DC #2,END
: GOTO 1200
1160 $OPEN #2
: DATA LOAD DC #2,F0,F0()
: R0=0
: FOR I=1TO F0
: IF F0(I)=#IDTHEN R0=(I-1)*16+#PART
: NEXT I
: IF R0>0THEN 1200
: IF F0<6THEN 1175
: $CLOSE#2
: PRINT HEX(0307)
: PRINT "Fatal error in IDEAS-2 Release 2.1 system program IDS2PIX3"
: PRINT "System CPU file IDS2f001 is full - Unable to add new CPU #"
: END
1175 F0=F0+1
: F0(F0)=#ID
: R0=(F0-1)*16+#PART
: DBACKSPACE #2,1S
: DATA SAVE DC #2,F0,F0()
1200 E$="IDS2fsxx"
: IF R0>=#PARTTHEN CONVERT (R0-#PART)/16+1TO STR(E$,7,2),(##)
: LIMITS T#2,E$,A,B,C,D
: IF D=2AND B-A>=165THEN 1300
: IF D=0THEN 1230
: DIM J1$8
: J1=0
: J1$="JUNKxxxx"
1220 J1=J1+1
: CONVERT J1TO STR(J1$,5,4),(####)
: LIMITS T#2,J1$,A,B,C,D
: IF D<>0THEN 1220
: SCRATCH T#2,E$
: SAVE DC T#2,(E$)J1$1000,1000
: SCRATCH T#2,J1$
1230 DATA SAVE DC OPEN T#2,(166)E$
: ERRORPRINT HEX(0307)
: PRINT "Fatal error in IDEAS-2 Release 2.1 system program IDS2PIX3"
: PRINT "Start module unable to open necessary system file ";E$
: END
1240 DATA LOAD DC OPEN T#2,E$
: MAT REDIM E3$(9)83
: E3$()=" "
: DATA SAVE DC #2,E3$()
: DSKIP #2,161S
: DATA SAVE DC #2,END
: LIMITS T#2,E$,A,B,C,D
: FOR I=A+3TO A+163
: DATA SAVE BA T#2,(I)STR(E3$(),,256)
: NEXT I
: STR(E3$(),,8)=ALL(30)
: DATA SAVE BA T#2,(A+3)STR(E3$(),,256)
1300 $CLOSE#2
: GOTO 1405
1310 PRINT HEX(0607020402000E);AT(23,0);"Error message: Fatal device selecti
on error attempting to open #";A;"/ ";STR(E$(),A*3+83,3);" !";HEX(010F05)
: IF STR(E$(),139,8)=" "THEN STOP
: ELSE LOAD T#4,STR(E$(),139,8)1000,
: STOP "CANNOT FIND SYSTEM FILES -- SELECT DEVICE # 0 TO THE IDEAS SYSTEM P
ACK"
1405 DIM F8$(6)83,F9$(6)83
: SELECT PRINT 005
: IF H=1THEN 1420
: PRINT HEX(0306020402000E);AT(0,0);BOX(1,79);" ";STR(E$(),2,8);" - ";STR(E
$(),22,32);" Open Application Data Files"
1420 L=0
: F=3
: IF H=1THEN 1685
: GOSUB 1735
: FOR I=1TO 60
: F0=L+1
: K=714+I*17
: IF E$(K)<>"S"AND E$(K)<>"R"THEN 1680
: F5$=STR(E$(),I*8+243,8)
: IF F5$=" "THEN 1680
: E7$=F5$OR ALL(20)
: GOSUB '39(E7$,5)
: W=P
: Y=A
: IF Q=0THEN 1705
: DATA LOAD DA T#P,(A)F8$()
: FOR J=0TO 16
: IF J=0THEN F9$()=F8$()
: IF J=0THEN 1520
: K=K+1
: IF E$(K)<>"S"AND E$(K)<>"R"THEN 1675
1495 F5$=STR(F8$(),267+J*8,8)
: IF F5$=" "THEN 1675
: E7$=F5$OR ALL(20)
: GOSUB '39(E7$,5)
: Y=A
: W=P
: IF Q=0THEN 1705
: DATA LOAD DA T#P,(A)F9$()
1520 MAT SEARCHE$()<86,45>,=STR(F9$(),105,3)TO F9$STEP 3
: IF F9$=HEX(0000)THEN 1710
1530 R=INT((VAL(F9$,2)+2)/3)
: GOSUB '39(STR(F9$(),2,8),R)
: IF Q=0THEN 1715
: L=L+1
: GOSUB 1740
: E1$(L)=STR(F9$(),2,8)&BIN(R)&BIN(F0,2)&STR(F9$(),403,1)&STR(F9$(),405,42)
&BIN(A,2)
1555 UNPACK(####)STR(E1$(L),13)TO Q
: STR(E1$(L),13,2)=BIN(Q,2)
: S=(N-2)/VAL(STR(E1$(L),43),2)
: STR(E1$(L),46,2)=BIN(S,2)
: S=S-VAL(STR(E1$(L),45))
: A=VAL(STR(E1$(L),50))
: B=VAL(STR(E1$(L),51))
: STR(E1$(L),19,2)=BIN(MIN(S*B/A,VAL(STR(E1$(L),48),2)),2)
: F=MAX(F,VAL(STR(F9$(),416))+VAL(STR(F9$(),417)))
: IF J=0THEN 1600
1575 STR(E1$(L),52,2)=STR(E1$(VAL(STR(E1$(L),10),2)),52,2)
: STR(E1$(L),13,2)=STR(E1$(VAL(STR(E1$(L),10),2)),13,2)
: IF STR(E1$(VAL(STR(E1$(L),10),2)),9,1)>HEX(0F)THEN STR(E1$(L),9,1)=OR HEX
(80)
: GOTO 1675
1600 IF STR(F9$(),75,3)<>" "AND STR(F9$(),75,3)<>R4$THEN STR(E1$(L),52,1)="G"
: IF STR(F9$(),79,3)<>" "AND STR(F9$(),79,3)<>R4$THEN STR(E1$(L),53,1)="G"
: IF STR(F9$(),404,1)=HEX(01)THEN 1675
: FOR V=1TO VAL(STR(F9$(),404,1))-1
: IF STR(F9$(),251+V*3,3)=" "THEN 1730
: MAT SEARCHE$()<86,45>,=STR(F9$(),251+V*3,3)TO F9$STEP 3
: IF F9$=HEX(0000)THEN 1730
1635 R=INT((VAL(F9$,2)+2)/3)
: GOSUB '39(STR(F9$(),2,8),R)
: Y=1E9
: IF Q=0THEN 1715
: E1$(L+V)=STR(F9$(),2,8)&BIN(R)&BIN(F0,2)&HEX(00)&STR(F9$(),405,42)&BIN(A,
2)
: STR(E1$(L+V),13,2)=STR(E1$(L),13)
: F9$=BIN((N-2)/VAL(STR(E1$(L+V),43),2),2)
1660 S=VAL(F9$,2)
: A=VAL(STR(E1$(L+V),50))
: B=VAL(STR(E1$(L+V),51))
: STR(E1$(L+V),45,5)=HEX(00)&STR(F9$,,2)&BIN(S*B/A,2)
: STR(E1$(L+V),19,2)=STR(E1$(L+V),48)
: NEXT V
: L=L+VAL(STR(F9$(),404,1))-1
1675 NEXT J
: IF L>=H-1THEN I=60
1680 NEXT I
1685 L=L+1
: IF STR(F4$,4,8)<>"IDS2PCST"THEN 1690
: L=24
: F=80
1690 LOAD T#2,"IDS2PIX9"
1695 DEFFN'39(F5$,P)
: IF STR(F5$,,4)="IDS2"OR STR(F5$,,4)="ids2"THEN P=2
: T=P
: LIMITS T#P,F5$,A,M,N,Q
: ERRORPRINT AT(20,0,80);"Disk error on device #";P;" - check device";
: STOP
: END
1700 RETURN
1705 F0$="Control file "&HEX(22)&E7$&HEX(22)&" for "&HEX(22)&F5$&HEX(22)&" not
on device # 5 / "&STR(E$(),98,3)&"."
: GOTO 1720
1710 F0$="Device address "&STR(F9$(),105,3)&" for file "&HEX(22)&STR(F9$(),2,8
)&HEX(22)&" has not been selected."
: GOTO 1720
1715 F0$="Data file "&HEX(22)&STR(F9$(),2,8)&HEX(22)&" not found on device "&S
TR(E$(),R*3+83,3)&"."
: PRINT AT(20,0);HEX(07);HEX(0E);F0$
1716 PRINT AT(21,0);"If possible, enter a correct address for ";HEX(22);STR(F9
$(),2,8);HEX(22);", else enter ";HEX(22);"END";HEX(22);". ";
: LINPUT -STR(F9$(),105,3)
: IF STR(F9$(),105,3)="END"THEN END
1717 MAT SEARCHE$()<86,45>,=STR(F9$(),105,3)TO F9$STEP 3
: IF F9$>HEX(0000)THEN 1718
: PRINT HEX(07);AT(22,0);"Address not selected in START program";
: GOTO 1716
1718 PRINT AT(20,0,230);
: IF Y=1E9THEN 1720
: DATA SAVE DA T#W,(Y)F9$()
: GOTO 1530
1720 PRINT AT(20,10);HEX(07);"Error ";HEX(0E);F0$
: STOP
: END
1730 F0$="Device address "&STR(F9$(),251+V*3,3)&" for volume "&BIN(V+48)&" of
file "&HEX(22)&STR(F9$(),2,8)&HEX(22)&" not selected."
: GOTO 1720
1735 PRINT HEX(0F);AT(23,0);"Now opening data file number ";
: D9=0
: D8=LEN(STR(E1$()))/56-1
: RETURN
1740 D9=D9+1
: PRINT AT(23,28,25);D9;" of ";D8;
: RETURN