Turbo Rascal Syntax error, “;” expected but “BEGIN” beta version will be released some random day during autumn 2018.

Downloads (version 0.03 B, 05.08.2018)

Due to an error in the new deployment scripts, the “decrunch” method did not work for version 0.03. A new patch 0.03B has been released 05.08.2018, also fixing the os x color theme bug.

Windows 64-bit: download link (extract and click on trse.exe)

OS X: download link (extract and copy the trse app into Applications. Tutorials can go anywhere.)

Generic linux 64-bit: download link (extract and run

A note on linux: In order to use the dasm compiler, which is only 32-bit, you need to add support for 32-bit architecture on your system. In order to make vice work, copy and paste these instructions to a terminal.

A note on compiling the tutorial burger game: You need to have exomizer turned on in order for the game to compile.


Version 0.04 Beta (Around 01.10 ?)

  • IDE
    • Rotate image / sprite / charsets. Very simple, goes all trashy if you apply the rotation several times, definitely a non-commutative transformation. Just like Deluxe Paint 2!
    • Charsets can export colors, and level editors support charset-based color selection (halving the size of the levels)
    • Bugfixes in image editor, rewritten the whole grid-thingy
    • Fixed huuuge thread-related bug that sometimes crashes image tabs, especially on linux. Damn threading and the Qt UI library.
    • Press “C” to set default clear character $20 in the level editor
    • Toggle multicolor/hires charset/sprites in editor
    • Memory analyzer font size can be specified under settings/general
    • Level editor can load both .bin and now .flf files (character sets)
  • Documents
    • New kind of TRSE document: Paw files. Paw files (PAcked Wooooow) are simple resource files for automated packing of data. Say that you have a project with 10 binary files (images, level data etc), so you need to compress the data in order to be able to include everything. So every time you change some of these level/image files while developing, you will have to manually calculate where to insert them in your code based on their file size. No more ! With Paw files packed resource manager, all you need to do is create a list of project data that you want to pack at a certain memory posision, specify their decrunching address and just compile.
    • In the example above, 2 images (data+colour) are packed and automatically included at memory position $D000, ready to be uncrunched at their desired address! Include file with memory positions is automatically generated.
    • Example of automatically packed data (levels, images, colour data etc at $D000 and $9900)
  • Compiler
    • New built-in methods: ScreenOff() and ScreenOn(), turning off/on screen while decrunching etc
    • Fixed spriteloc to support constant x values
    • New preprocessor for variables (and perhaps code as well), @startblock $F000 and @endblock to manually locate code/data within block at a memory position
    • Previously, there were jumps before and after procedure declarations. Basically, too many jumps between chains when initializing. Removed all procedure jumps, only 1 in the start of the program that goes to the main code block. about 1% code reduction,
    • New method: SetCharacterLocation( [memory address]); for ease-of use (basically changes $D018). If you have included a character set at $2000, then simply type SetCharacterLocation($2000);
  • Tutorials
    • Working on a new game, but source will not be published before the game is completed. Level selections, scrolling levels, main map, conversations, loot etc.
    • Will rewrite webpage tutorials, give extensive examples of the level designer. (to do, in progress)
    • Small tutorial game with the level editor (to do, in progress)
    • Paw packer decrunch tutorial 22

Version 0.03 (30.08.2018)

  • OSX version
  • Linux version
  • Tutorials:
    • Finished RB1 game
    • Exomizer decrunch tutorial
    • Horizontal starfield tutorial
    • Timed fading text writer tutorial
  • Compiler / syntax
    • deczp (as opposed to inczp, to decrease zero page pointers)
    • decrunch supports name only, user doesn’t have to calculate decrunch address anymore! compressed_image: incbin("logo_compressed.bin", $8000); decrunch(compressed_image); 
    • incbin & any memory position can now be arbitrary, will be automatically sorted
    • define arrays at certain memory positions : my_arr: array[64] of byte = (1,2,3,4 ...) at $7800;
    • ClearScreen speed improvement
    • Bugfix: incbin/at using “$8000” or $8000 are now identical (pure strings are not required)
    • Bugfix: inc / dec didn’t work for arrays (my bad!)
    • New post optimizer: if there is a lda v; tax (without a sta/tay afterwards), change to ldx v
  • IDE
    • Better export parameters for images
    • level editors / etc loading flf charsets
    • post-optimizer toggle actually enables/disable post-optimizing
    • Small bugfix copy/paste image data tool

Version 0.02 Alpha (22.08.2018)

In this version, the self-auto-updater which really didn’t work has been removed. In order to use this new version, please extract to a new folder and then copy your personalized settings file “fluff.ini” from the old directory to the new.

This version should contain some missing dll’s that is typically installed with VC redist, so the program won’t crash on non-developer environments.

  • IDE
    • First version of movie creator (doesn’t work, don’t use, paths and values are hardcoded, just forgot to remove before build). Will be included properly later.
    • Simplex nose creation and usage (not really included, but supported, proper documentation and user API will follow in a later version)
    • MultiColorImages now contain additional export parameters such as start & end of char export
    • Multicolor images and charsets various improvements and bugfixes
    • Smaller bugfixes
  • Compiler / Syntax
    • Fixed error in multicolormode / scroll
    • FLD now takes a parameter and supports both bitmap and text modes
    • Most important in this update: Exomizer decrunch. Basically just write decrunch($pos + $end); and automatically decrunch your random data. An example:
      • Say you have some character data that you would like to place at $6000. In win/linux prompt, with exomizer type “exomizer mem -lnone myFile.bin@0x6000 -o myFile_crunched.bin”
      • Assume crunched data is in total $56 bytes and is included at $8000. Then just type : decrunch($8056), and your data will be extracted to $6000!

Version 0.010 Alpha (11.06.2018)

  • IDE
    • Bufix colors level editor
    • Memory Map & analyzer
  • Compiler/syntax:
    • @userdata “from address” “to address” “name” to specify user-specific data for memory map purposes

Version 0.009 Alpha (13.05.2018)

  • Compiler/syntax:
    • Fixed a nasty error where lookup array in conditionals didn’t work (if a=arr[i] then…)
    • Fixed a nasty bug where all-uppercase variables (especially pointers) didn’t work…
    • Fixed a crashing bug when trying to declare variables after procedure declarations
  • IDE
    • Charsets and sprites have flip horizontal/vertical
    • Display current char ID in hex & dec together with position
    • First version of “Image effects”, rendering all sorts of lines or circles (for use in tunnel effects)
    • Export binary now has a custom parameters dialog box (currently  only for charsets, specify which chars to export etc)
  • Tutorials:
    • Work on TakoNeko game (TakoNeko currently removed from tutorials)
    • Tutorial 18+19 tunnel effects etc added, but not included in the current version

Version 0.008 Alpha (04.05.2018)

  • Compiler/syntax:
    • Removed incscreenx, use inczp instead (faster)
    • Added wait(val) for exact cycle waiting etc
    • Added new type: cstring which converts text to built-in C64 screen codes (similar to .text or SCRU/SCLR)
    • Minor fixes (random crashes when forgetting certain keywords etc..)
  • Tutorials
    • Added tutorial 17, 2×2 font scroller + additional font
    • Added first version of tutorial game #2: TakoNeko. Currently just a side scrolling level, but hey!
  • IDE
    • Fixed a serious error in the level designer that sometimes added an extra byte to levels and destroyed the entire file. Puh!
    • Huuge overhaul of image / char editing, should be much more streamlined now

Version 0.007 pre-alpha (23.04.2018)

  • Compiler/syntax updates:
    • Proper pointer integration, removed default zeropage1-7, you now have to declare as pointers (var myPointer:pointer;)
    • Pointers as procedure parameters (yay!, procedure RenderStuff(data:pointer);)
    • Conditionals can take optional paranthesis (if a=b .. if (a=b) ). Logical ops have parameters required.
    • Bugfix in IRQ handling
    • nmirq to enable/disable/hook NMI irq (disable break)
    • keypressed(KEY_XX)=1 to test whether key is pressed (NOT using kernal…)
    • copyfullscreen optimized
    • Improved string definitions (multilines etc, text: string = (“THIS”, 10, ” STRING “, 20))
    • ReturnInterrupt (rti) and Return (rts) builtin functions for smoothness
  • Editor updates:
    • Zeropage pointer settings
    • Errors in include files will automatically open the file and move the cursor to the line number with error
    • Pressing “F2” on a procedure call will  move the text cursor to the procedure definition
      • will also implement this for variables (when time)
      • Does not work for multiple include files (yet)
  • Tutorials
    • Mega IRQ fullscreen scroller (16 rows) (tutorial 16)
    • Updates on Rogue Burger One



Version 0.006 pre-alpha (19.04.2018)

  • Compiler/syntax updates:
    • Fixed minor bugs
    • Better integer support (again..)
    • Added FLD builtin method (Flexible Line Distance)
    • Added Jammer (for debugging purposes)
  • Editor updates:
    • No more crash if file doesn’t exist (changed dir, moved, etc)
    • Fullscreen Char image files
    • Minor optimizations
    • Enhanced integer constant binop in built-in methods etc
  • Tutorials
    • Working on full cracktro intro (Hokuto Force), not yet included

Version 0.005 pre-alpha (15.04.2018):

  • Compiler/syntax updates
    • Fixed bugs in scrollx/scrolly
    • SetMemoryConfig fix
    • 16×16 integer division (yay)
    • better integer handling
    • Deleted some old functions
    • Build automatically saves file
    • Lesser optimizations
  • Tutorial
    • Polygon filler first unoptimized version (tutorial 15) + rotations

Version 0.004 pre-pre-alpha: (12.04.2018)

  • Compiler/syntax updates:
    • disableinterrupts changed to disableciainterrupts
    • setmemoryconfig(io=[0:1], kernal=[0:1], basic=[0:1]); sets $01
    • for loop step : for i:=0 to 20 step 5 do begin …
    • Also added support for unary negative op: -1 = 255, -100 = 156 etc
    • for loop bugfix + speed + removed jump
    • Overhaul of Raster IRQ system
      • EnableRasterIRQ
      • StartIRQ
      • RasterIRQ
      • CloseIRQ
      • EnableIRQ (cli)
      • PreventIRQ (sei)
      • EnableRasterIRQ
  • Editor
    • Exomize support
    • Build variables (currently on the right-hand part of compiler output), enable exomizer/optimizer etc
    • Help Dialogue + started writing help text (F1 on any word)
  • Tutorial
    • Simple stable raster (tutorial 13)
    • Fire demo effect (tutorial 14, simple, to show optimizing)

Version 0.003 pre-pre-alpha (08.04)

  • Compiler / syntax updates and changes:
    • Important optimizer: a:=b+c now takes 12 cycles instead of 25. wtf. why wasn’t this fixed earlier? (explicitly checking if there are only two variables/numbers and a binary operation of +/-). Reduced code size by 4%, substantial speed increase.
    • Added onpage/offpage keywords to force condition+loops to use fast or slow branching +-127 page jumps
  • New built-in methods:
    • Inc(var), Dec($D800). Same as var:=var+1, but still easier to write.
  • Editor changes
    • Less aggressive code completion (popup goes away when pressing ctrl, backspace etc)
    • Reloads .asm files when tab selected
    • Kills all vice instances on build

Version 0.002 pre-pre-alpha 07.04.18:

  • Compiler / syntax updates and changes:
    • Integer bugfixing
    • String bugfixes
    • Removal of hash # before integer literals
    • Compulsory pointer ^ to addresses poke(^$D800, …) etc
    • Initializers (string, bytes) var a:byte=5; b:string=”weee”;
    • 8-bit division that is *not* power of two (power of two already implemented)
    • Lesser optimizations
  • New built-in methods:
    • CopyCharsetFromRom(address)
    • ClearBitmap(address, count)  – count is 256 bytes*count
    • Hideborderx() – removes x border
  • New RasLib methods:
    • Line(x1,y1,x2,y2) bitmap mode
  • New tutorials:
    • Tutorial 11 Line Drawing
    • Tutorial 12 DYCP Scroller
  • New bootstrapper
    • Let’s hope this fixes the auto update.


Version 0.001 pre-pre-alpha :