informs about compiler & simulator updates/upgrades and bugfixes.
Date is formatted as dd.mm.yyyy
|Ver. 5.6-14 22.01.2006
|Ver. 5.6-13 26.11.2005
|Ver 5.6-12 03.11.2005
|Ver 5.6-11 26.10.2005
|Ver 5.6-09 07.05.2005
|Ver 5.6-08 14.04.2005 -
|Ver. 5.6-07 24.02.2005
|Ver. 5.6-06 12.02.2005
|Ver. 5.6-05 04.02.2005
|Ver. 5.6-04 28.01.05
Ver. 5.6-03 18.01.05
Example: Bsp. DEFINE count = AUTO AS WORD.
If you want to access the low or high byte of a word variable define as follows:
DEFINE countl = count as byte 'access to LSB of count
DEFINE counth = count + 1 as byte 'access to MSB of count
|Ver. 5.6-02 17.12.04
5.6-01 10.12.2004 -> NEW RELEASE 5.6
|Ver. 5.5-26 18.11.2004
|Ver. 5.5-25 11.11.2004
|Ver. 5.5-24 28.09.2004
|Ver. 5.5-23 06.09.2004
|Ver. 5.5-22 21.08.2004
|Ver. 5.5-21 21.07.2004
|Ver. 5.5-20 07.06.2004
|Ver. 5.5-18 18.04.2004
|Ver. 5.5-17 01.03.2004
|Ver. 5.5-16 25.02.2004
Ver. 5.5-15 21.02.2004
|Ver. 5.5-14 09.02.2004
|Ver. 5.5-13 28.01.2004
Ver. 5.5-12 26.01.2004
Ver. 5.5-11 17.01.2004
|Ver. 5.5-10 18.12.2003
Rx2 = R/S (pin 4) was wrong. See release 5.5-14!!!!!!!!
Rx3 = E (pin 6)
Rx4 = D4 (pin 11)
Rx5 = D5 (pin 12)
Rx6 = D6 (pin 13)
Rx7 = D7 (pin 14)
(pin 5 = RW must be connect to Vss)
This kind of connection scheme must be defined by the keyword UPLINES (upper lines) along with LCDINIT e.g. LCDINIT rb,4,20,uplines
|Ver. 5.5-01 15.07.2003 "=>"
in IF clauses will be compiled now correctly.
Trying to assign a bit value or variable to a byte variable will cause an error message.
12F629, 12F675, 16F818 and 16F819 are implemented (see SUPPORTED PICs)
The programmers firmware has to be modified because of new programming algorithms for PIC 16F87xA and 16F818/819.
|15.07.2003 Introducing the
new compiler version 5.5 . Now iL_BAS16PRO supports 32 bit
arithmetics (unsigned) and DBLWORD is defined for these kind of
Additional there are 4 I2C basic routines implemented. These are: I2CRD, I2CSP, I2CST und I2CWR.
We changed CONASC into BINTOASC, CONDEC into BINTODEC and we added BINTOBCD.
Conditional compiling with $IF, $ELSE and $ENDIF (not nested) is now available.
Predefine values for the internal data eeprom with the new key word EEDATA(addr) data1,....
|Version 5 of our compiler
iL_BAS16STD and iL_BAS16PRO introduces a new form of variable
declaration. The former predefined variables A, B, C, etc. has been
ideal for small PICs. But the new PIC generation gets a lot of data
memory so the old fashion of declaration is getting confused. Now the
variable symbols are assigned to their real memory address. You find
more information in the manual (download).
Ver. 5.0-55 15.07.2002 The size of data arrays for DATA and READDATA was first limited up to 1024 entries. Now 2048 entries are available.
Ver. 5.0-54 18.06.2002 For the WRITE command for 16F62x a wrong sequence was created so that this command couldn't work. Now the problem is fixed.
Ver. 5.0-53 11.05.2002 DOZE command for all PICs with a 12 bit core must be updated. A SLEEP is a minimum of 2.3 Sekunden. Finer solutions are not available. Therefore n means: n=1 -> 2,3s; n=2 -> 4,6s. Now can also write INC RB or DEC RA and so on.
Ver. 5.0-52 15.02.2002 Now the CREN bit will be toggled only in a case of an receiving error. Before this correction receiving errors could occur at high data rates because a toggling of CREN turns the receiver off and on.
Ver. 5.0-51 29.01.2002 SET, RES and TOGGLE var,var couldn't access bank 1 and 3 properly (access to bank 0 and 1 were ok). Bug is fixed now.
Ver. 5.0-50 21.10.2001 SEROUT calculated a wrong parity if a constant should be transmitted. Now, both, variables and constants can be transmitted.
Ver. 5.0-49 25.09.2001
Implementation of compiler switch $LRANGE xx. xx is a decimal value. $LRANGE is only for iL_PAGE0. It defines the range around the page bounds where all GOTOs and CALLs are replaced by LJMP or LCALL. If a program grows and grows and suddenly it don't works anymore it could be a problem of iL_PAGE0. Maybe it cannot find all GOTOs or CALLs which have to be replaced. Default value is 16, if necessary try 32 or 48. Bugfix for SET, RES and TOGGLE access to bank 1,2,3.
Ver. 5.0-48 14.08.2001
(not ready yet) Implementation of the new command PCKEYOUT. It output characters like a PC keyboard. PKEYOUT port,datapin,clkpin,value1,value2,.. The different keycodes are not implemented. This has to be done by the developer. This command is not for 12C5xx and 16C5x. The xtal frequency must be 2 MHz or higher.
Ver. 5.0-47 01.08.2001
PIC16F870, 16F871, 16F627 and 16F628 are now supported.
Ver. 5.0-46 12.07.2001
Bugfix of the ERR bit in a 16 bit addition. During I2CSLAVE receiving GIE is cleared and set at the end of the routine if user interrupts or CLOCK is used.
Ver. 5.0-45 15.06.2001
Within SERIN and SEROUT PIN and BAUD can be variables now. PIN must be 8 bit variable and BAUD must be 16 bits. BAUD must be calculated with parameters of xtal and PIC core. This is not easy so a small program called BAUDCALC.EXE is written to do calculation. E.g. let baud=329 'at 6,144 MHz and 4800 Baud let baud=407 'at 6,144 MHz and 2400 Baud let pin=2 let value="A" serout rb,pin,baud,value
Now you can access ports using LET var=RB or LET RA=var.
Ver. 5.0-43 01.03.2001
Now the RCIE bit within PIE1 will not be set automatically if SERIN or SEROUT uses the hardware uart. The problem appeared when different interrupts has been active but the interrupt for SERIN should be off. To use the SERIN interrupt needs to set RCIE (SET PIE1,5 or SET RCIE).
Ver. 5.0-42 16.02.2001
Canceled the internal functions $STRIS and $LTRIS in 14 bit core types. SERIN and SEROUT works now better if using PIC 1250x and baudrates <250. CALVAL is now set into the SRC-File in a right way.
Ver. 5.0-41 19.01.2001
Access to arrays is now working for PIC16C57 and new variable declaration. Access to bank 1,2 and 3 is ok now even with SET and RES etc. But attention: only 8 bit variables are usable. This limits the indirect access to bank 0 and 1.
Ver. 5.0-40 19.12.2000
Bugfix. ($ 34 instead of $34 is now recognized as an error)
Ver. 5.0-39 15.11.2000
Bugfix in iL_BAS16SEP The switches $CCON and $CCOFF are implemented. This allows to switch on and off the overflow check within a addition or subtraction routine. (can save a lot of space, if not needed) Optimization within 8 bit addition and subtraction, logical commands and comparisons with 8 bit arguments
Ver. 5.0-38 13.11.2000
Bugfix: READ-command when using PIC 16F87x.
Ver. 5.0-37 07.11.2000
DOZE command: Value for OPTION register has to be changed.
Ver. 5.0-36 30.10.2000
Changing the timing a little bit (XTAL)
Ver. 5.0-35 20.09.2000
A new command was implemented, requested by many customers. CONDEZ and CONASC convert a byte or word variable into the decimal value (CONDEZ) or in a string (CONASC). The result of this conversion needs 3 or 5 register files more. The start address of this area must be defined. Syntax: CONDEZ var8,bufferstart (buffer length=3) CONDEZ var16,bufferstart (buffer length=5) CONASC var8,bufferstart (buffer length=3) CONASC var16,bufferstart (buffer length=5)
Ver. 5.0-34 18.09.2000
Bugfix in MOD command.
Ver. 5.0-33 12.09.2000
PEEK and POKE can now be used in a IF-THEN-ELSE command.
Ver. 5.0-32 31.07.2000
Timing for SERIN and SEROUT has to be changed a little bit for those PICs with 12 bit command length. (These devices need more machine commands because they have only a two level stack.) A new compiler switch $NCALDEF must be implemented because Microchip's PICSTART programer makes an error when reading the OBJ file with RC oscillator selected. CALVAL defines the calibration value when using JW types. The original value programed by Microchip is lost during erasing the chip. Therefore, before using this type of PIC for the first time, read this value and note on the PIC. If no value is defined, default value $80 is used.
Ver. 5.0-31 22.07.2000
Bugfix: HL and LH within the declaration of the interrupt handler was not written exactly into OPTION register. So a software SERIN routine invoked by a interrupt on RB0 couldn't be implemented.
Ver. 5.0-30 11.07.2000
Starting the compiler with switch /E suppresses the error messages.
Bugfix: no error message within PULSOUT command and new variable declarations.
Ver. 5.0-29 13.06.2000
Bugfix PRINT command.
Ver. 5.0-28 20.05.2000
Bugfix: internal format and new variable usage didn't work.
Ver. 5.0-27 16.05.2000
Bugfix: ADINP for 12C67x at ADCFG5
Ver. 5.0-26 09.05.2000
Timebase for FREQIN command must be changed. Now 1000 means a gate time of 1 sec (intern only 500 msec because both slopes are counted).
Ver. 5.0-25 09.04.2000
Better syntax checking
Ver. 5.0-24 22.03.2000
The commands to access the internal EEPROM of the PIC 12E51x and 12E67x are now READ and WRITE. But, because the is no feedback at the end of the write cycle a minimum delay time of 10 msec must be ensure before the next WRITE command is executed. The I2C commands are now available for other use.
Ver. 5.0-23 12.02.2000
Bugfix: A confusing error in the interrupt service routine is fixed (FSR). T0CS_INT, T0SE0 and T0SE1 can be used for all PICs.
Ver. 5.0-22 05.02.2000
Bugfix: internal access to variables in the different banks is now bug free (->STORE_DATEI) If LCD and the key matrix a connected to different ports, 16 keys can be used now.
Ver. 5.0-21 01.02.2000
Bugfix: symbol check.
Ver. 5.0-20 26.01.2000
Bugfix: SERIN (error appears only in some cases).
Ver. 5.0-19 19.01.2000
Bugfix: SETBAUD (b real) and SEROUT The usage of const and var within the HIGH, LOW, REVERS, INP and OUTP command a possible now. e.g. HIGH cont,var and HIGH const,const
Ver. 5.0-18 11.01.2000
Bugfix: access to arrays in bank 2 and 3
Older changes can be read in HISTORIE.TXT (German)