home *** CD-ROM | disk | FTP | other *** search
- B A S I C C O M P I L E R P A T C H E S
-
- **********************************************************
- *** This information was derived from the IBM PCSS ***
- *** system in BOCA RATON, FL ***
- *** ***
- *** Origional file from the Charlotte, NC PC-BBS ***
- *** 1200/300 N/8/1 (704) 365-4311 ***
- **********************************************************
-
- UPDATED TO INCLUDE PATCHES 8 AND 9 FROM A MORE RECENT PRINTED `SCRIPT'.
- 2/1/84 JEFF BARTON
-
- These patches are provided to fix the following known bugs with the IBM
- Basic Compiler.
-
- 1. The use of CHAIN with COMMON from a large program to a small program,
- both with large data areas can cause an "Out of MEMORY Error"
-
- 2. The use of INPUT# with quotes strings of length 1 may produce random
- results.
-
- 3. When using array calculations such as:
- T(J,L)=G(J)*E(L)+T(J+1,T)
- an internal error may result.
-
- 4. MOD does not return the correct value under certain conditions.
-
- 5. When using several LEFT$, RIGHT$ or MID$'s in string calculations, a
- "string formula too complex" error is received.
-
- 6. COMMUNICATION Buffers are destroyed when CHAINing to another program.
-
- 7. BLOAD may fail with an "input past end".
-
- APPLY THESE PATCHES USING DOS 1.1 ONLY!!!
- -----------------------------------------
-
- Sept 1, 1983
- Following is the complete set of Basic Compiler Patches. for version
- 1.0. These will be updated as needed, the date will be in the first line of
- the text. Before starting, boot up DOS 1.1 on your machine. These patches
- can not be installed properly with any other version of DOS. Use DOS 1.1
- throughout the procedure. If you are fast, it will take you about 1/2 to
- 3/4 hour to install these patches. Be certain that you are using a back-up
- diskette, not the originals. We all make mistakes, and it is MUCH easier to
- start over with another diskette than to try to reconstruct damaged data.
- When you are done, be sure to note on the label that these diskettes have
- been patched, and the date the patch was installed.
-
- NOTE: Patches 8 and 9 have been added since Sept. '83. Patch 6 and
- parts of other patches are superceded by these additions.
- 8. Patched BASRUN.EXE can produce errors with the REST and LSET
- commands. Patch 8 also allows compiled programs to work with the DOS PRINT
- command and CHAIN to COM FILES.
- 9. Patch 9 allows the compiler to correctly detect duplicate COMMON
- definition of arrays at compile time. J.B.
-
- ============================================================
- UPDATE PROCEDURE
- The following is a "script" of the procedure to update your BASIC
- Compiler Library and Basic diskettes. Follow it carefully. If you make a
- mistake don't panic, just start again.
-
- First, you will make an exact copy of your BASIC Compiler Library and
- Basic diskettes using the DOS DISKCOPY command. You need two blank
- formatted diskettes. Put your DOS diskette in Drive A and a blank formatted
- diskette in Drive B. ALL YOUR INPUTS ARE IN <>'s, as in <DISKCOPY A: B:>.
- Do NOT type the <>'s.
- A><DISKCOPY A: B:><enter>
- This command will send the following messages to the screen:
- Insert source diskette in drive A:
- Insert target diskette in drive B:
- Strike any key when ready
- You must insert the MASTER copy of the BASIC Compiler Library diskette in
- drive A. Anything else will NOT work. This is your source diskette. You
- must insert the BLANK FORMATTED diskette in drive B. (This is your target
- diskette.) Press the enter key to start the disk copy.
- The following message will appear on the screen:
- Copy another (Y/N)?<Y>
-
- The following message will appear on the screen:
- Insert source diskette in drive A:
- Insert target diskette in drive B:
- Strike any key when ready
- Remove your Master Library diskette from drive A and your copy from drive
- B. Label your copy "BASIC COMPILER LIBRARY DISKETTE - UPDATED WORKING
- COPY". Insert your Basic Compiler Basic diskette in drive A, and your
- second formatted blank diskette in drive B. Strike the return key to start
- the copy.
- The following message will appear on the screen:
- Copy another (Y/N)?<N>
- Remove your Master Basic diskette from drive A and your copy from drive B.
- Label your copy "BASIC COMPILER BASIC DISKETTE - UPDATED WORKING COPY".
- Place your DOS diskette back in drive A.
- ========== USING DEBUG TO UPDATE YOUR DISKETTE =============
- The DEBUG prompt is "-". Everything that you type will be after the
- "-" or after the ".". Immediately after entering the hex digits following
- the "." prompts, you must press the space bar to move to the next byte. The
- places that you must press the ENTER key are indicated by <enter>. Note
- that the "xxxx" in the data displayed will be filled with the appropriate
- memory address.
- ************************************************************
- ****** * * * * * * * 1 * * * * * * * *******
- ************************************************************
- ==================== PROBLEM DESCRIPTION ===================
- The use of CHAIN with COMMON when CHAINing from a large program with a
- large data area to a small program with a large data area may produce an
- incorrect 'Out of memory' error.
- ====================== PROBLEM SOLUTION ====================
- UPDATING BASRUN.EXE
- The following procedure will update the file BASRUN.EXE. Remember that
- the DOS diskette should be in drive A and the diskette labeled "BASIC
- COMPILER LIBRARY - UPDATED WORKING COPY" should be in drive B. If at any
- time you do not see the data exactly as it appears on this procedure,
- (ignore (cont'd)s) you did something wrong and you should start again. You
- can start again by typing Q followed by ENTER. This returns you to DOS. Be
- certain that you are on drive B:; you should see a B> prompt. If you see
- anything else then type B: to switch to your B: drive.
-
- B><A:DEBUG BASRUN.EXE><enter>
- -<R><enter>
- AX=0000 BX=0000 CX=79AA DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
- DS=04B5 ES=04B5 SS=04C5 CS=057B IP=0000 NV UP DI PL NZ NA PO NC
- 057B:0000 1E PUSH DS
- -<Q><enter>
- B><RENAME BASRUN.EXE BASRUN.TMP><enter>
-
- In the listing above, notice that the value of CS=057B. This is the
- value that will be used in the next step. Since CS=057B, the command that
- is used with Debug is:
- E57B:0CF1
-
- The value of the CS register is always used with this command, it is not
- NECESSARILY going to be 057B.
-
- B><A:DEBUG BASRUN.TMP><enter>
- -<E57B:0CF1><enter>
- xxxx:0CF1 3B.<72> C1.<09> 77.<3B> 03.<C1> E9.<77> CA.<05> FB.<E9>
- xxxx:0CF8 A3.<CA> 7A.<FB> 07.<00> 0B.<00> FF.<A3> 74.<7A> 38.<07>
- -<W><enter>
- Writing 7C00 bytes
- -<Q><enter>
-
- NOTE: If the above process fails to to produce the sequence shown, try
- the DEBUG command: -<E1951><enter>. If the contents of address 1951 are
- reported to be 3B, proceed with the rest of the patch. I could not find the
- sequence of original data by following the above instructions, but a search
- for the sequence produced results at address 1951. J.B.
-
- Leave your Working Library diskette in drive B, and your DOS 1.1
- diskette in drive A: for the following update installation. CONTINUE TO #2
-
- ************************************************************
- ****** * * * * * * * 2 * * * * * * * *******
- ************************************************************
- See Basic Compiler Patches #1 for setup procedure.
- ==================== PROBLEM DESCRIPTION ===================
- The use of the INPUT# statement with quoted strings of length 1 may
- produce random results.
- ====================== PROBLEM SOLUTION ====================
- Use the procedure described below to update your IBM Personal Computer
- BASIC Compiler.
-
- UPDATING BASRUN.EXE
-
- B><A:DEBUG BASRUN.TMP><enter>
- -<E6236><enter>
- xxxx:6236 3C.<B1> 22.<FF>
- xxxx:6238 75.<3C> 10.<22> 80.<75> FA.<10> 2C.<80> 75.<FA> 0B.<2C> E8.<75>
- xxxx:6240 7E.<0B> 00.<E8> BA.<7C> 22.<00> 22.<BA> E8.<22> 48.<22> D4.<E8>
- xxxx:6248 72.<46> 40.<D4> B1.<72> FF.<3E>
- -<W><enter>
- Writing 7C00 bytes
- -<Q><enter>
- B><RENAME BASRUN.TMP BASRUN.EXE><enter>
-
- UPDATING BASCOM.LIB:
-
- The following procedure will update the file BASCOM.LIB. Remember that
- the DOS diskette should be in drive A and the disk labeled "BASIC COMPILER
- LIBRARY DISKETTE - UPDATED WORKING COPY" should be in drive B.
- If at any time you do not see the data exactly as it appears on this
- procedure, you did something wrong and you should start again. You can
- start again by typing Q followed by ENTER. This returns you to DOS.
-
- B><A:DEBUG BASCOM.LIB><enter>
- -<ECBD7><ENTER>
- -xxxx:CBD7 3C.<B1>
- -xxxx:CBD8 22.<FF> 75.<3C> 10.<22> 80.<75> FA.<10> 2C.<80> 75.<FA> 0B.<2C>
- -xxxx:CBE0 E8.<75> 00.<0B> 00.<E8> BA.<00> 22.<00> 22.<BA> E8.<22> 00.<22>
- -xxxx:CBE8 00.<E8> 72.<00> 40.<00> B1.<72> FF.<3E>
- -<ECCA1><enter>
- xxxx:CCA1 39.<3B>
- -<ECCA8><enter>
- -xxxx:CCA8 3F.<41>
- -<W><enter>
- Writing 19600 bytes
- -<Q><enter>
- B>
-
- You are now back in DOS. You should compile and run the following
- program to verify that you applied the update correctly. Be sure to compile
- and run the program using the diskette labeled "BASIC COMPILER LIBRARY -
- UPDATED WORKING COPY" to verify that the updates to both files work
- properly.
-
- 10 OPEN "TSTPROG" FOR OUTPUT AS #1
- 20 FOR I=1 TO 10
- 30 WRITE #1,I,"A","BB","CCC","DDDD"
- 40 NEXT I
- 50 CLOSE
- 60 OPEN "TSTPROG" FOR INPUT AS #1
- 70 IF EOF(1) THEN END
- 80 INPUT #1,J,A$,B$,C$,D$
- 90 PRINT J;A$;B$;C$;D$
- 100 GOTO 70
-
- This program should print :
- 1 ABBCCCDDDD
- 2 ABBCCCDDDD
- 3 ABBCCCDDDD
- 4 ABBCCCDDDD
- 5 ABBCCCDDDD
- 6 ABBCCCDDDD
- 7 ABBCCCDDDD
- 8 ABBCCCDDDD
- 9 ABBCCCDDDD
- 10 ABBCCCDDDD
-
- Continue to #3
-
- ************************************************************
- ****** * * * * * * * 3 * * * * * * * *******
- ************************************************************
- See Basic Compiler Patches #1 for setup procedure.
- ==================== PROBLEM DESCRIPTION ===================
- When using arrays and making calculations such as :
- T(J,L)=G(J)*E(L)+T(J+1,I)
- the compiler may give an Internal Error or the calculation may be performed
- incorrectly. Use the following procedure to update BASCOM.COM on your
- "BASIC COMPILER BASIC - UPDATED WORKING COPY" diskette.
- ===================== PROBLEM SOLUTION =====================
- The following is a "script" of the procedure to patch your diskette.
- Follow it carefully. If you should make a mistake don't panic. Just start
- again. All user inputs are in <>'s. Do NOT type the <>'s. Make sure your
- DOS 1.1 diskette is in drive A and your diskette labeled "BASIC COMPILER
- BASIC - UPDATED WORKING COPY" is in drive B.
-
- Just a reminder: The DEBUG prompt is "-". All the things that you type
- are after the "-" prompt or after the "." prompt. Immediately after
- entering the hex digits following the "." prompts, you must press the space
- bar to move to the next byte. When you are entering data after the "-"
- prompts or entering the last set of hex digits on a line, you must press
- the ENTER key. Note that the "xxxx" in the data displayed line will be
- filled with the appropriate memory address.
-
- A><DEBUG>
- -<NB:BASCOM.COM>
- -<L>
- -<D8AB3 L1>
- xxxx:8AB3 0C
-
- If you do not see the above line of data after the "D3AB3 L1" command
- then you did something wrong and you should start again. You can start
- again by typing Q followed by ENTER. This returns you to DOS.
-
- -<E8AB3>
- 04B5:8AB3 0C.<1F>
- -<W>
- Writing A280 bytes
- -<Q>
-
- You are now back in DOS. Run the program below to be sure that you
- have updated your diskette correctly.
-
- 10 DEFINT D,F,N
- 20 DSD=0
- 30 FOR N=0 TO 7
- 40 FSEC=FSEC+1
- 50 NEXT
- 60 PRINT "The result is ";512*(1-DSD)*FSEC,"The result should be 4096"
-
- CONTINUE TO #4
-
- ************************************************************
- ****** * * * * * * * 4 * * * * * * * *******
- ************************************************************
- See Basic Compiler Patches #1 for setup procedure.
- ==================== PROBLEM DESCRIPTION ===================
- MOD does not return the correct value under the following conditions:
-
- (1) Using a binary noncommutative operator such as MOD, IMP,
- or \ (integer division with the backslash)
- (2) The left operand is simpler than the right operand
- (3) The result is required in the BX register
-
- The following example shows the problem:
-
- 10 A=3: B=4: C=10
- 20 PRINT "C MOD (A + B) = "; C MOD (A + B)
-
- RUN
-
- C MOD (A + B) = 7
-
- In this example the result of the operation will always be (A + B)
- regardless of what the true result should be. So in general the problem is:
-
- A MOD (B + C) = (B + C)
- ====================== PROBLEM SOLUTION ====================
- Use the procedure described below to update your IBM diskette labeled
- "BASIC COMPILER BASIC - UPDATED WORKING COPY".
-
- UPDATING BASCOM.COM
- The following procedure will update the file BASCOM.COM. Remember that
- the DOS 1.1 diskette should be in drive A and the diskette labeled "BASIC
- COMPILER BASIC - UPDATED WORKING COPY" should be in drive B. If at any time
- you do not see the data exactly as it appears on this procedure, you did
- something wrong and you should start again. You can start again by typing Q
- followed by ENTER. This returns you to DOS.
-
- B><A:DEBUG BASCOM.COM><enter>
- -<E7450><enter>
-
- xxxx:7450 F6.<86> 87.<47> 02.<02> 00.<24> 08.<08> <enter>
-
- -<W><enter>
- Writing A280 bytes
- -<Q><enter>
-
- CONTINUE TO #5
-
- ************************************************************
- ****** * * * * * * * 5 * * * * * * * *******
- ************************************************************
- See Basic Compiler Patches #1 for setup procedure.
- ==================== PROBLEM DESCRIPTION ===================
- When using several LEFT$, RIGHT$, or MID$'s in string calculations, a
- "string formula too complex" error is received. The error occurs when using
- a null string. Use the procedure described below to update your IBM
- Personal Computer BASIC Compiler version 1.0.
- ===================== PROBLEM SOLUTION =====================
- The following is a "script" of the procedure to update your diskette
- labeled "BASIC COMPILER LIBRARY - UPDATED WORKING COPY". This procedure
- will be used to update BASCOM.LIB and BASRUN.EXE. Follow it carefully. If
- you make a mistake don't panic, just start again. Remove your BASIC
- diskette from drive B and insert your LIBRARY diskette. Be sure that your
- DOS 1.1 diskette is still in drive A.
-
- Just a reminder: If at any time you do not see the data exactly as it
- appears on this procedure, you did something wrong and you should start
- again. You can type Q followed by ENTER to return to DOS and start again.
- The DEBUG Search Command (-S) appears to ensure the procedure will
- will be inserted in the correct place. Use the spacebar to move from one
- field to the next when you make no entry into that field. The following
- procedure will update the file BASCOM.LIB.
-
- B><A:DEBUG BASCOM.LIB><enter>
- -<S1000:0 FFFF C0 01 02 02><enter>
- 1000:**** <-----use this address (****) next
- -<E1000:****><enter>
- 1000:**** C0.<C8>
- -<S1000:**** FFFF BB 00 00 C3 21><enter>
- 1000:$$$$ <-----use this address ($$$$) next
- -<E1000:$$$$><enter>
- 1000:$$$$ BB.<53> 00.<BB> 00. C3.<00>
-
- 1000:xxxx 21.<B1>
- -<S1000:$$$$ FFFF C1 16 01 01 CF><enter>
- 1000:@@@@ <-----use this address (@@@@) next
- -<E1000:@@@@><enter>
- 1000:@@@@ C1.<C2> 16. 01. 01. CF.<CE>
- -<S1000:@@@@ FFFF 8A 02 00 00 74><enter>
- 1000:#### <-----use this address (####) next
- 1000:xxxx
- 1000:xxxx ...
- -<E1000:####> <-----from above
- 1000:#### 8A.<A0> 02.<0C> 00.<00> 00.<01> 74.<C0>
- 1000:xxxx 20.<01> 4D.<5B> 4A.<E8> 5A.<00> 20.<00> 4D.<BB> 4A.<00> 5A.<00>
- 1000:xxxx 20.<C3> 4D.<D1> 4A.<9C> 5A.<0B> 20.<00> 4D.<84> 4A.<02> 5A.<06>
- 1000:xxxx 20.<01> 4D.<04> 4A.<C4> 5A.<05> 20.<16> 4D.<01> 4A.<01> 5A.<E7>
- 1000:xxxx 20.<8A> 4D.<02> 4A.<00> 5A.<00> 20.<74>
- -<W><enter
- Writing 19600 bytes
- -<Q><enter>
-
- UPDATING BASRUN.EXE
- NOTE: The following procedure will update the file BASRUN.EXE, BUT the
- patch will be undone by the procedure in patch 8. It is suggested that you
- omit these steps. If you do try them, but do not get the sequences shown,
- try the first patch at 567A and the second at 56FD with DEBUG commands:
- -<E567A><enter> and -<E56FD><enter>. Note that these are the addresses used
- in patch 8 and the data is restored to the condition before this patch.J.B.
-
- B><A:DEBUG BASRUN.EXE><enter>
- -<R><enter>
- AX=0000 BX=0000 CX=79AA DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
- DS=04B5 EX=04B5 SS=04C5 CS=XXXX IP=0000 NV UP DI PL NZ NA C PO NC
- 047B:0000 1E PUSH DS
- -<Q><enter>
- In the listing above, notice that the value of CS=XXXX. Whatever value
- is in CS will be used in the next step. For example, if the value of
- CS=05A1, then the first command that is used with DEBUG is <E05A1:4A1A>
- B><RENAME BASRUN.EXE BASRUN.TMP><enter>
- B><A:DEBUG BASRUN.TMP><enter>
- -<EXXXX:4A1A><enter>
- xxxx:4A1A BB.<E9> C6.<80><enter>
- -<EXXXX:4A9D><enter>
- XXXX:4A9D XX.<E8> XX.<7A> XX.<E5>
- XXXX:4AA0 XX.<BB> XX.<C6> XX.<00> XX.<C3>
- -<W>
- Writing 7C00 bytes
- -<Q>
-
- CONTINUE TO #6
-
- ************************************************************
- ****** * * * * * * * 6 * * * * * * * *******
- ************************************************************
- See Basic Compiler Patches #1 for setup procedure.
- ==================== PROBLEM DESCRIPTION ===================
- It is possible for COMM buffers to be destroyed when chaining. If your
- program opens data files and COMM files and then chains to another program,
- the COMM file will be closed. Use the procedure described below to update
- your IBM PC Basic Compiler. Also note that the integrity of COMM buffers
- can be guaranteed only if they are opened before any other files in the
- program.
- NOTE: Before you do this extensive patch, see patch 8. The same
- addresses are referenced and the data is restored to the condition before
- this patch. It is suggested that this patch be skipped. J.B.
- ====================== PROBLEM SOLUTION ====================
- The following procedure will be used to update your "Basic Compiler
- Library - Updated Working Copy" diskette. If you make a mistake, just start
- again. The DOS diskette should be in drive A: and the "Basic Compiler
- Library - Updated Working Copy" diskette in drive B:
-
- B><A:DEBUG BASRUN.TMP><enter>
- -<E1BE6><enter>
- xxxx:1BE6 52.<2C> 1C.<3B><enter>
- -<E2120><enter>
- xxxx:2120 8E.<E8> 1E.<00> 10.<36> 05.<90><enter>
- -<E5714><enter>
- xxxx:5714 8B.<50> F3.<98> 58.<D1> 5B.<E0>
- xxxx:5718 5A.<93> 59.<2E> E8.<8C> 5D.<9F> E5.<B8> CB.<48> 51.<93> 52.<58>
- xxxx:5720 53.<E9> 50.<17> E8.<E1> 10.<2E> 00.<8E> 91.<9D>8 F3.<A8> A4.<48>
- xxxx:5728 91.<C3><enter>
- -<W><enter>
- Writing 7C00 bytes
- -<Q><enter>
-
- CONTINUE TO #7
-
- ************************************************************
- ****** * * * * * * * 7 * * * * * * * *******
- ************************************************************
- See Basic Compiler Patches #1 for setup procedure.
- ==================== PROBLEM DESCRIPTION ===================
- BLOAD may fail with an "Input Past End" error if the screen being
- loaded contains a 1A at a sector boundary.
- ====================== PROBLEM SOLUTION ====================
- Use the following procedure to update your IBM Basic Compiler version
- 1.0. Insert your diskette labeled "Basic Compiler Library - Updated Working
- Copy" in drive B:, and your DOS diskette in drive A:
-
- B><A:DEBUG BASRUN.TMP><enter>
- -<E4A69><enter>
- xxxx:4A69 04.<D7><enter>
- -<W><enter>
- Writing 7C00 bytes
-
- -<Q><enter>
-
- B><RENAME BASRUN.TMP BASRUN.EXE><enter>
-
- With your "Basic Compiler Library - Updated Working Copy" diskette
- still in drive B: use the following directions for using DEBUG to install
- the patch. Again, if you make a mistake, type Q and start over again.
-
- B><A:><enter>
- A><DEBUG><enter>
- -<LDS:100 1 7A 1><enter>
- -<EDS:15E><enter>
- xxxx:015E 04.<D7><enter>
- -<WDS:100 1 7A 1><enter>
- -<Q><enter>
- A>
-
- ************************************************************
- ****** * * * * * * * 8 * * * * * * * *******
- ************************************************************
- See Basic Compiler Patches #1 for setup procedure.
- ==================== PROBLEM DESCRIPTION ===================
- The use of LSET or RSET with a copy of BASRUN.EXE that has been patched
- can produce errors. This procedure is also needed to correct BASRUN.EXE so
- compiled programs can work with the DOS PRINT command and to allow programs
- to CHAIN to .COM files.
- ====================== PROBLEM SOLUTION ====================
- First, make an exact copy of your patched BASRUN.EXE using the DOS
- DISKCOPY program. You need a blank formatted diskette. Put your DOS
- diskette in drive A and the blank formatted diskette in drive B. Use the
- DOS DISKCOPY command [described in the DOS manual] to make a copy of your
- diskette. When you are done, you should put your DOS diskette back in drive
- A and the copy you just made in drive B.
- The DEBUG prompt is "-". Everything you enter will be in <>.
- Immediately after the "." prompts, you must press the space bar to move to
- the next byte. The enter or return key is indicated by <enter>. The xxxx's
- will be filled with the proper address by DEBUG. If you have a problem,
- type a Q at the dash prompt. This will return you to DOS where you can
- start over.
-
- SECTION 1
- The first section of this update will replace existing bytes in your
- patched BASRUN.EXE with the original bytes. This section is only needed if
- you are updating a patched version. If you are using an original version
- and skipped patches 5 (BASRUN.EXE section) and 6, you can skip this section
- and go on to section 2. If the bytes indicated by "xx" are the same as
- those you need to enter, you can hit the space bar to move to the next
- byte. You only need to change those bytes that differ from those indicated
- in this procedure. Type B:<enter> to get to your B drive.
-
- B> <RENAME BASRUN.EXE BASRUN.TMP><enter>
- B> <A:DEBUG BASRUN.TMP><enter>
- -<E1BE5><enter>
- xxxx:1BE5 xx.<E8> xx.<52> xx.<1C><enter>
- -<E2120><enter>
- xxxx:2120 xx.<8E> xx.<1E> xx.<10> xx.<05><enter>
- -<E2C34><enter>
- xxxx:2C34 xx.<8E> xx.<1E> xx.<10><enter>
- -<E567A><enter>
- xxxx:567A xx.<BB> xx.<C6><enter>
- -<E56FD><enter>
- xxxx:56FD xx.<51> xx.<52> xx.<53>
- xxxx:5700 xx.<50> xx.<E8> xx.<31> xx.<00> xx.<50> xx.<D1> xx.<E9> xx.<B8>
- xxxx:5708 xx.<20> xx.<20> xx.<F3> xx.<AB> xx.<73> xx.<01> xx.<AA> xx.<59>
- xxxx:5710 xx.<F3> xx.<A4> xx.<8B> xx.<FA> xx.<8B> xx.<F3> xx.<58> xx.<5B>
- xxxx:5718 xx.<5A> xx.<59> xx.<E8> xx.<5D> xx.<E5> xx.<CB> xx.<51> xx.<52>
- xxxx:5720 xx.<53> xx.<50> xx.<E8> xx.<10> xx.<00> xx.<91> xx.<F3> xx.<A4>
- xxxx:5728 xx.<91> xx.<D1> xx.<E9> xx.<B8> xx.<20> xx.<20><enter>
-
- SECTION 2.
- This section of the update correctly patches the following items:
- 1. LEFT$, RIGHT$, MID$ of null strings can give an incorrect error
- message - String Formula Too Complex.
- 2. CHAINing closes communication files. You must open COMM files
- before opening any other files in the BASIC program.
- 3. BASIC compiled programs do not work with DOS PRINT utility.
- 4. RSET and LSET problems with previously patched BASRUN.EXE.
- This section can be used to apply the three patches to a new copy of
- BASRUN.EXE or to an existing patched copy after section 1 above has been
- applied. With DEBUG running and loaded with BASRUN.TMP as above:
-
- -<E0102><enter>
- xxxx:0102 AA.<FF><enter>
- -<E1BE5><enter>
- xxxx:1BE5 E8.<E8> 52.<DA> 1C.<60><enter>
- -<E2120><enter>
- xxxx:2120 8E.<E8> 1E.<AE> 10.<5B> 05.<90><enter>
- -<E2C34><enter>
- xxxx:2C34 8E.<E9> 1E.<7A> 10.<50><enter>
- -<E567A><enter>
- xxxx:567A BB.<E9> C6.<2D> 00.<26><enter>
- -<E7CAA><enter>
- xxxx:7CAA 00.<E8> 00.<CD> 00.<BF> 00.<BB> 00.<C6> 00.<00>
- xxxx:7CB0 00.<C3> 00.<9C> 00.<FF> 00.<1E> 00.<12> 00.<05> 00.<8E> 00.<1E>
- xxxx:7CB8 00.<10> 00.<05> 00.<E9> 00.<7B> 00.<AF> 00.<00> 00.<00> 00.<00>
- xxxx:7CC0 00.<00> 00.<00> 00.<50> 00.<98> 00.<D1> 00.<E0> 00.<93> 00.<2E>
- xxxx:7CC8 00.<8C> 00.<9F> 00.<66> 00.<6E> 00.<93> 00.<58> 00.<E9> 00.<69>
- xxxx:7CD0 00.<BB> 00.<2E> 00.<8E> 00.<9D> 00.<56> 00.<6E> 00.<C3><enter>
- -<W><enter>
- Writing 7C00 bytes
- -<Q><enter>
-
- B> RENAME BASRUN.TMP BASRUN.EXE<enter>
-
- Be sure to note on the disk label that patch 8 has been installed.
-
- ************************************************************
- ****** * * * * * * * 9 * * * * * * * *******
- ************************************************************
- See Basic Compiler Patches #1 for setup procedure.
- ==================== PROBLEM DESCRIPTION ===================
- When a program has duplicate COMMON definitions for arrays, the
- compiler does not detect the error correctly. The compiler should give a CD
- error at compile time.
- ====================== PROBLEM SOLUTION ====================
- With your DOS diskette in drive A and the "Updated Working Copy" of the
- BASIC compiler diskette in drive B: type <B:><enter> to get to your B
- drive.
-
- B> <A:DEBUG BASCOM.COM><enter>
- -<E3FD><enter>
- xxxx:03FD 00.<E8> 00.<97> 00.<18>
- xxxx:0400 00.<E8> 00.<A7> 00.<18> 00.<E9> 00.<56> 00.<18><enter>
- -<E1C92><enter>
- xxxx:1C92 E8.<E9> 15.<68> 00.<E7><enter>
- -<W><enter>
- Writing xxxx bytes
- -<Q><enter>
-
- Be sure to note on the diskette label that patch 9 has been installed.
-
- ************************************************************
- ****** * * * T H E E N D * * * *******
- ************************************************************
-