Skip to content

Releases: nanochess/CVBasic

CVBasic v0.7.1

24 Oct 00:19
Compare
Choose a tag to compare

o Added support for NABU PC using --nabu (with -cpm option)
o Added support for USR/CALL with up to 5 arguments (only Z80)
o Added DEFINE VRAM READ to read VRAM.
o Added new example brinquitos.bas
o Added new example vramcopy.bas
o Optimizes division by 16.
o More optimization.

CVBasic v0.7.0

04 Sep 17:31
Compare
Choose a tag to compare

Changes in v0.7.0:

  • Added support for Tatung Einstein using the switch --einstein
  • Added support for Casio PV2000 using the switch --pv2000
  • Added support for Hanimex/Soundic Pencil II using the switch --pencil
  • Added support for Texas Instruments TI-99/4A using the switch --ti994a
  • Protected the AY-3-8910 mixer so you don't need to worry anymore of putting the correct bits 6-7.

CVBasic v0.6.0

07 Aug 20:38
Compare
Choose a tag to compare

This release adds support for Creativision / Dick Smith's Wizzard using a new library and a new 6502 backend, the target is selected with the --creativision switch.

Added also support for Sord M5 computer (--sord switch) and Memotech MTX computers (--memotech switch).

Added new syntax VDP(2) = 7 for setting VDP registers.

Support for 16K of RAM in MSX (using -ram16 switch)

Optimizes 8-bit division by power of two, pointer subtraction, and added a peephole optimizer for Z80 code.

CVBasic v0.5.1

25 Jun 16:36
Compare
Choose a tag to compare

I just have released the newest version 0.5.1

Now with support to target Spectravideo SVI-318/328 computers using the --svi switch. It is amazing to create a game and target four platforms at a time! Notice the Spectravideo doesn't support bank-switching because there isn't a PCB cartridge supporting it.

The highlights are SIGNED and UNSIGNED keywords for typing variables. Remember SIGNED is a little slower for comparisons, but it also comes with signed division, and signed modulo.

Added OPTION EXPLICIT to make it required to declare all variables using DIM (much in the style of C), also OPTION WARNINGS to avoid generating warnings altogether.

This release also solves several bugs (Megacart not working with SGM, SG1000 bootup, and SC3000 joystick not working).

It also includes more extensive optimization, typically saving dozens of bytes up to a few hundred.

CVBasic v0.5.0

28 Apr 16:29
Compare
Choose a tag to compare

This new version implements bank-switching.

Bank-switching is supported for Colecovision with Megacart-style banking, for SG1000 using Sega mapper ($fffe), and for MSX using ASCII16 mapper.

Changes in v0.5.0:

  • New statements BANK ROM (for selection ROM size from 128K, 256K, 512K or 1MB!), BANK to select a bank for following code/data, and BANK SELECT to select a bank to access.
  • New statement SPRITE FLICKER ON/OFF.
  • Optimization of code generation for NEXT.
  • Optimization of several 8-bit and 16-bit operations in common usage.
  • Added patch to make SG1000 compilations compatible with SC3000.

Enjoy it!

CVBasic v0.4.3

14 Apr 18:41
Compare
Choose a tag to compare

New changes in this version v0.4.3:

  • DATA statements can now use constant expressions.
  • Support for DATA VARPTR (creating tables of addresses).
  • Optimized access to arrays when using constant index (so fast as variables).
  • Implemented USR and CALL to simplify calling assembler language.
  • Added support for formatted PRINT with leading zeros or spaces, for example, PRINT AT 5,"Score:",<5>#score
  • Emits warnings for unused variables.
  • Emits warnings for GOTO jumping to PROCEDURE, or GOSUB to non-PROCEDURE.
  • Generates error codes for automated builds.
  • Super Game Module support added (using --sgm option on compilation). This is 24 KB. of RAM! And compatible with Coleco ADAM ;)
  • It includes the CVBasic source code in the ASM output so you can see how things are compiled.
  • Background color default is transparent, so you can use BORDER to change the color of the full screen.
  • Updated manual.
  • Random numbers are more random because the video interrupt increments the lfsr.
  • Reduced size of the prologue, saves at least 140 bytes.
  • Speed up of mode setup, and VRAM copying.
  • Sega SG-1000 ROMs save around 32 bytes.

CVBasic v0.4.2

16 Mar 06:11
Compare
Choose a tag to compare

New changes in this version v0.4.2:

  • Solved optimization bugs.
  • MSX target now can use the whole 32K of ROM.
  • Solved a bug where CONT and CONT2 didn't worked on MSX.
  • Solved a bug where the music player would fail depending on the final program size.
  • Solved a bug where ON GOTO/GOSUB would trigger a debugging message.

CVBasic v0.4.1

15 Mar 01:58
Compare
Choose a tag to compare

New changes in this version v0.4.1:

  • Solved bug in gasm80 when using INCBIN on Windows platforms.
  • Solved bug in PRINT when using only PRINT AT expr
  • Solved bug when using multiplication by zero.
  • Optimization of constants in multiplication, division, and modulo.
  • Optimization of expression trees of additions/subtractions.
  • Added ASCII character constant access in expressions.
  • Added the LEN function to get the length of strings (useful with DEF FN)
  • Added the POS(0) function to get the current position of the cursor.
  • Added the SGN function.

CVBasic v0.4.0

15 Mar 01:57
Compare
Choose a tag to compare

New changes in this version v0.4.0:

  • Added DEF FN statement so you can create macros for commonly used code.
  • Added VARPTR support in expressions, to get pointers to arrays and variables (required for the VGM player)
  • Added VARPTR support in DEFINE, so you can make easily animations of sprites and bitmaps.
  • Added a new example: VGM.bas a simple VGM player for SN76489 VGM files (VGM files not included!)
  • Added a new example: oscar_compressed.bas the same as oscar.bas but compressed with Pletter!
  • Support for Pletter compression both in TMSColor and CVBasic. Now you can fit even more in a 32K ROM!
  • Added MSX support. Just compile with the --msx switch, and it will create an MSX compatible ROM! (after assembly of course).
  • New SOUND [5-9] statements to handle the MSX AY-3-8910 sound chip.
  • Includes Raspberry Pi executables!

CVBasic v0.3.0

15 Mar 01:56
Compare
Choose a tag to compare

Changes in the version 0.3.0:

  • Added SCREEN statement (to disable/enable the screen and to copy tilesets into the screen)
  • Added MODE statement (to reset modes and select one of three useful VDP modes)
  • Added BORDER statement (to change color of the screen border).
  • Added DEFINE VRAM statement (to copy data directly into VRAM).
  • Added ASM statement (for these things that cannot be coded currently).
  • Added demo.bas to show how to draw graphics imported by TMSColor on the screen.
  • Added oscar.bas to show how to display full-screen graphics.
  • Added TMSColor utility to import BMP images and convert these to the VDP data format.
  • More optimization of unnecessary 16-bit arithmetic to use only 8-bit.
  • Optimization of 8-bit comparisons.
  • Added a peephole optimizer to avoid variable reloading.

Also corrected a bug that froze CVBasic when your program reached a certain size.