Skip to content

Releases: tebe6502/Mad-Pascal

Mad Pascal 1.7.6

20 Jan 16:30
2ea4262

Choose a tag to compare

  • Bugfixes and Optimizations

Mad Pascal 1.7.5

06 Dec 21:26
2fd0e71

Choose a tag to compare

  • bugfixes and optimizations
  • added support for SUBRANGE (low..high)
  • new PACKFIRE, SAM, MD1 units
  • added MD1, MD1PLAY resources
  • improved parsing of real values, accepts additional characters ‘E’, ‘-’, e.g. 6.1858296469E-02

Mad Pascal 1.7.4

17 Aug 16:04

Choose a tag to compare

  • Bugfixes and Optimizations
  • improved operations on ENUM type (passing/returning to procedure/function)
  • added support for WITH statement (WITH record_name)
  • new units: SHA256, GIF, AES, BFONT

Mad Pascal 1.7.3

02 Jul 14:11

Choose a tag to compare

  • Bugfixes and Optimizations
  • added support for addressing a pointer to an array in OBJECT
  • added new optimization 'opt_BOOLEAN_OR.inc'

Mad Pascal 1.7.2

23 Feb 16:36

Choose a tag to compare

  • optimizations, bugfixes
  • faster code for ABSOLUTE arrays
  • unit SYSTEM added array 'mem: array [0..0] of byte absolute $0000'
  • optimization for CASE (tail optimize)
  • INC/DEC optimization for [striped] arrays
  • new unit E80, handler E: in HiRes mode, 80 columns.
  • new unit RC4, encryption with RC4 algorithm

Mad Pascal 1.7

24 Sep 19:42

Choose a tag to compare

  • [STRIPED] for arrays with a maximum range of 0..255

  • new target, neo6502 (-t neo)

  • GRAPH.INC: Circle (faster version)

  • fixes lib/aplib.pas

  • fixes lib/zx0.pas

  • improved CASE optimization

  • added directive {$UNITPATH filename} as equivalent to {$LIBRARYPATH filename}

  • added ability to specify a path for a module declared by USES, e.g:

    uses crt, vector in '...\3d_vector.pas';

  • added support for LIBRARY modules

  • added EXTERNAL modifier for variables, procedures, functions

  • added ability to set compilation address from program level, e.g.:

    program name : address;
    library name : address;

Mad Pascal 1.6.9

12 Oct 22:59

Choose a tag to compare

  • improved memory allocation for arrays [0..0], 'ABSOLUTE $0000' is enforced initially, 1 byte of memory is saved
  • added possibility to declare arrays without specifying their size, e.g.:

var tab: array of byte = [1,3,4,3,1];
var tb: array of char = 'abcdefghij';

  • new compiler directive {$bin2csv filename} allows you to initialize arrays e.g.:

var tb: array of byte = [ {$bin2csv filename} ];

  • new compiler directive {$optimization loopunroll}, {$optimization noloopunroll}, performs FOR loop unrolling with fixed parameters
  • new BLOWFISH module allowing to encrypt, decrypt character strings according to specified key
  • new example a8\AES-Rijndeal

Mad Pascal 1.6.8

19 Aug 20:46

Choose a tag to compare

  • resignation of type expansion for expressions from SHR

  • new SAPR resource type, SAPRPLAY

  • for RMTPLAY, as the second parameter you can specify the address for variables on the zero page

  • SizeOfResource(variable, name)

  • unit SAPLZSS

  • unit SHANTI

  • unit SHA1

  • unit xSFX

  • unit SYSTEM: NtoBE, RorByte, RorWord, RorDWord, RolByte, RolWord, RolDWord, SarShortint, SarSmallint, SarLongint

  • possibility to instantiate an array of CHAR type by STRING (if string is shorter spaces will be inserted), e.g:

    tab: array [0..15] of char = '0123456789ABCDEF';

  • fixed passing function values through arrays

  • added support for VBLKI interrupts (immediate) via SetIntVec, GetIntVec (https://mads.atari8.info/doc/pl/przerwania/)

  • rewritten compiler code for mod separable modules

  • rewritten code for handling arrays with pointers to records 'tab: array [0..x] of record^'

  • added optimization 'Common head/tail Sequence coalescing'

Mad Pascal 1.6.6

15 Aug 14:41

Choose a tag to compare

  • improved implementation of EXIT
  • added ability to generate code for RAW (-target)
  • added support for INLINE modifier for procedures and functions
  • added ability to declare a variable on the null page by using REGISTER modifier
  • added support for TEXTFILE (TEXT) type
  • new unit INIFILES
  • unit SYSUTILS: CompareMem, TryStrToInt
  • unit SYSTEM: CompareByte, Pos, Delete
  • improved passing of parameters to objects (OBJECT) without participation of program stack :STACKORIGIN (in most cases)
  • added possibility to mark a variable as ephemeral [volatile]
    [volatile] vcount: byte absolute $d40b;
  • for OBJECT added methods CONSTRUCTOR, DESTRUCTOR
  • added support for macros {$define label (parameters) := expression}
  • added 'FOR element IN array' construction for arrays not exceeding 256 bytes
  • more free memory on the zero page, FXPTR, PSPTR pointers are now allocated depending on whether they are used
  • added support for FLOAT16 type
  • added support for procedural type
  • unit ZX2

Mad Pascal 1.6.5

16 May 20:42

Choose a tag to compare

  • rewritten handling of CASE OF
  • rewritten code optimization for arrays not exceeding 256 bytes
  • optimization for conditions '>', '<='
  • added memory allocation for STRING-type arrays (so far only the pointer was put away, it worked like 'array of ^string')
  • new platform added, Commodore C4 Plus
  • unit GRAPHICS: procedure Font(charset: pointer);
  • unit STRINGUTILS
  • unit MISC, RMT, CMC, MPT: DetectAntic
  • unit SYSTEM revised to include ATARI, C64, C4Plus platforms
  • unit ZX0
  • unit HCM2
  • added support of $resource (RCDATA, RCASM) for C64, C4Plus platforms, resources are sorted by ascending addresses
  • extended RCDATA resource with possibility to specify ofset for read file
  • added support for Pascal compliant syntax for ASM block, no { } brackets required
  • added new directive {$codealign proc = value}, {$codealign loop = value} allowing to align generated code