JALv2 Homepage

Welcome to the JALv2 homepage. JALv2 is a rewrite of Wouter van Ooijen's famous Just Another Language.

More JAL bits and libraries can be found:

jallib -- libraries for everything
http://code.google.com/p/jallib/
Rob Hamerling's Homepage for all Microchip device files
http://www.robh.nl/
Single Multiple with Constant Calculator
http://www.casadeyork.com/jalv2/cmul.cgi
Original JAL
www.voti.nl/jal/index_1.html
Stef's PIC Pages
http://pic.flappie.nl
Wattystuff
http://www.wattystuff.net/tiki/tiki-index.php?page=PIC+Micro
Bert van Dam Pages
http://members.home.nl/b.vandam/
Yahoo Group
http://tech.groups.yahoo.com/group/jallist
Release history:
2.4m -- 26 Dec 2009
  • Fixed documentation for '-include'
  • Added '[no-]asm', '[no-]codfile', '[no-]log', '[no-]lst' '[no-]hex'.
  • IF expr THEN END IF caused the compiler to crash
  • Software stack was not being calculated when -no-variable-reuse in effect.
  • Directly accessing the 0th element (ch = buf[0]) of a pointer caused either an assertion failure or a segfault
  • Fixed COD generation
  • Added ID programming support with PRAGMA ID and PRAGMA IDDATA
  • Added 'movlb 0' to the ISR preamble on 16 bit cores
  • Fixed `db' & `dw' on 16 bit cores
  • Fixed PC which was formerly 16 bits, but can be 32 bits on the 16 bit cores.
  • Restructed the archive directory layout
  • Converted the three major guides (jalv2, jalv2opt, jalv2pragma) to docbook format in the hopes that this will help me keep everything up to date.
  • EEPROM data on the 16 bit cores started at location 0 ('cause the variable created was only 16 bits, whereas eeprom on the 16 bit cores starts higher than 0xffff).
  • a re-entrant function taking an array parameter caused an invalid assertion failure
  • in some cases a SEGFAULT would occur when passing an array parameter
  • turned on const comparison warnings (when a comparison is always TRUE or FALSE)
  • turned on overflow warnings (when a universal value is used that does not fit with its counterpart)
  • fixed COD file generation
  • check function parameters for type & overflow
  • comparing a single bit variable and a single bit constant does not work if -no-expr_reduce is set.
  • emit an error if an attempt is made to create a bit array (bit arrays are not supported).
  • added `pragma bootloader bloader' and `pragma bootloader loader18'
  • fixed `pramga' --> `pragma' in the inline error message
  • fixed the TRIS parameters in the online manual
  • added `addwfc' to inline assembly
  • fixed aliasing at different block levels (eg, an alias in a procedure referencing a global)
2.4l -- 7 Aug 2009
  • -const-detect ordered the constant big endian instead if little endian
  • 16 bit code generation fixed to match mpasm (namely, the PC is shown in bytes not words)
  • Added inline assembly: reset
  • A procedure taking a volatile parameter and also re-entrant would cause an assert()
  • Changed re-rentrant entry/exit to not use stkpush/pop
  • A re-entrant function's return value was over-written if there were any non-volatile OUT paramters
  • added a numeric option to -loader18 to set the offset Examples:
    -loader18      : starts the code at 2048
    -loader18 4096 : starts the code at 4096
  • Added units to jalpragm.txt to explain that for `PRAGMA CODE size', size is in WORDs for 12/14 bit cores, and BYTEs for 16 bit cores (thanks MicroChip!). This follows from the second bullet above.
  • Included inclue assembly opcodes: rlcf/rlncf/rrcf/rrncf
  • Fixed 16-bit code to use rrcf instead of rrf
  • Make sure variables don't span banks even if the banks are contiguous (a problem seen on 16 bit cores).
  • `ALIAS...IS' should work even if the underlying variable is only a pseudo-variable
  • Output of `Code area' was screwy on 16 bit cores
  • Changed `pragma code' on the 18 series to use bytes instead of words
Lastest release files (JALv2 2.4m):
README.txt
archive/README.txt
Binaries (win32 and linux with chipdef files)
archive/jalv24m.zip
Sources
archive/jalv24msrc.zip
Archive
Bleeding edge files. Warning -- these are probably in the midst of being tested, and some features may not work. Always look at the README file to see what changes have come in! The version is always one higher than the last release.
README.txt
archive/beta/README.txt
Binaries (win32 and linux with chipdef files)
archive/beta/jalv24n-beta.zip
Sources
archive/beta/jalv24n-betasrc.zip

Documentation


Curious Perversions


These are just some minor projects I've done that probably don't belong in either a MicroController, or in JAL. Use at your own risk!