Listing of file='IDS2PP29' on disk='vmedia/701-2724B.wvd.zip'
# Sector 759, program filename = 'IDS2PP29'
1000 REM "IDS2PP29" - Release 2.1 - PROGRAM GENERATOR - SAVE CUSTOM GENERATED
CODE
1010 IF F6$(17)<"^"THEN SELECT @PART"IDS2SUBM"
: GOSUB 3160
1030 IF LEN(F$())<2THEN 3000
: X=POS(F8$()=FE)
: Z=POS(STR(F$(),2)<20)
: IF Z=0THEN Z=POS(-STR(F$(),2)=BA)
1051 IF POS(HEX(1A1BBA)=F$(Z+1))>0THEN 1060
: P=POS(-STR(F$(),2,Z)=FF)
: IF P>0AND P<ZTHEN Z=P+POS(STR(F$(),P+4)<20)+2
: GOTO 1051
1060 P=2
: GOTO 1070
: IF X<6THEN P=2
: ELSE P=1
1070 IF F$(1)=HEX(1A)THEN IF X+Z+5<256THEN 2000
: IF F$(1)=HEX(1B)OR E2(6)=E2(7)THEN IF X+Z+10<256THEN 2000
: STR(F8$(),X)=HEX(0D0000FE)
: IF LEN(F$())<2THEN 1110
: F8$(1)=HEX(00)
: F8$(POS(F8$()=FE))=HEX(FD)
: $TRAN(F8$(),HEX(3ABA))R
1110 IF E4<E3+185THEN DATA SAVE BA T#3,(E4,E4)F8$()
: ELSE GOSUB '35("Program file is too large for work file")
: GOSUB 3160
: F$(1)=HEX(1B)
: F8$()=HEX(20FE)
: GOTO 1030
2000 IF X=2OR F$(1)<>HEX(1A)THEN 2020
: F$(1)=":"
: STR(F8$(),X)=STR(F$(),,Z)&HEX(FE)
: GOTO 2040
2020 IF X>2THEN STR(F8$(),X)=HEX(0D0000FE)
: STR(F8$(),POS(F8$()=FE))=HEX(FF)&STR(C0$,,2)&STR(F$(),2,Z-1)&HEX(FE)
: UNPACK(####)C0$TO Q
: PACK(####)C0$FROMQ+1
2040 F$()=STR(F$(),1+Z)
: $TRAN(F8$(),HEX(3ABA))R
: MAT SEARCHF8$(),=HEX(FFC0)TO F9$
: IF F9$>HEX(0000)THEN STR(F8$(),VAL(F9$,2)+1,2)=C0$DSC HEX(01)
2050 MAT SEARCHF8$(),=HEX(9CFFFFFF)TO F9$
: IF F9$=HEX(0000)THEN 1030
: STR(F8$(),VAL(F9$,2)+2,2)=HEX(1032)
: GOTO 2050
3000 GOTO 3010
: UNPACK(####)C0$TO Q
: PACK(####)C0$FROMQ+1
3010 IF E2(5)=0THEN 3130
3020 IF E2(5)>0THEN DATA LOAD BA T#3,(E2(5))E4$()
: IF E4=E2(5)THEN E4$()=F8$()
: MAT SEARCHE4$(),=HEX(FFFFFF)TO F9$
: IF F9$>HEX(0000)THEN 3050
: E2(5)=E2(5)+1
: GOTO 3020
3050 UNPACK(####)C0$TO Q
: PACK(####)STR(E4$(),VAL(F9$,2)+1,2)FROMQ+E2(6)
: IF E4=E2(5)THEN F8$()=E4$()
: IF E4=E2(5)THEN 3120
: STR(E4$(),,1)=HEX(00)
: $TRAN(E4$(),HEX(FDFE))R
: DATA SAVE BA T#3,(E2(5))E4$()
3120 E2(5)=0
3130 IF E2(6)>E2(7)THEN 3140
: E4$()=F8$()
: $TRAN(E4$(),HEX(3ABA))R
: STR(E4$(),POS(E4$()=FE))=HEX(0D0000FE)
: DATA SAVE BA T#3,(E4)E4$()
: IF STR(R3$(1),6,1)="P"THEN LOAD DA T#2,(D$(6))1000,
: ELSE LOAD T#2,"IDS2PR19"1000,
3140 LOAD DA T#2,(D$(13))1000,
3150 STOP #
3160 PRINT HEX(06020402000E);AT(23,0);"Compiling BASIC program - Processing se
ctor";E4-E3+1;TAB(80);
: RETURN
3699 ON ERRORE1$,E2$GOTO 3700
3700 DEFFN'31
: E$="IDS2PP29"
: IF E5$<"Y"THEN LOAD T#2,"IDS2PER1"1000,
: STOP "ERROR"