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

Since the entire compiler & interface is written in Qt C++ and can be compiled cross-platform, packages will be released for both windows and linux.

A preliminary build alpha (with working tutorials) version 0.01 can be downloaded from here (windows 64-bit only)


Some people have reported that the auto-updater doesn’t work. Bugger. Just download the zip and extract to the original folder.

Version 0.02 Alpha (TBA):

OSX & Linux support

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 :