1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-06-29 09:20:38 +00:00
Commit graph

70 commits

Author SHA1 Message Date
Matthew Kilgore 2b3403745c Add initial MIDI language support
This adds MIDI support to the language as a new unstable feature. There
are two new metacommands that come with this:

$Unstable: Midi
$MidiSoundFont: [Default|"filename"]

The $Unstable command is required to be able to use any of the other
commands, and just signifies that this is not a full part of the
language yet and may change in breaking ways before the API is
finalized.

The $MidiSoundFont command enables MIDI support in the compiled program,
and also specifies what sound font to use to play MIDI files. "Default"
will make use of the soundfont placed at
'./internal/support/default_soundfont.sf2', and otherwise a filename can
be specified to use any soundfont wanted.

In either case, the selected sound font is compiled into the executable
and then loaded at runtime.

Fixes: #115
2022-09-04 23:35:14 -04:00
SteveMcNeill aed82b4979 $Color fix with $NoPrefix
There's no need for all colors to end up with a new prefix for use between $COLOR and $NOPREFIX.
The only conflicts we have are with _Red, _Green, _Blue, so this fix appends a NP_ to the front of the those three color names so they won't conflict with the command names.  (NP_ for NoPrefix_)
2022-04-28 17:20:45 -04:00
Fellippe Heitor 7bad19cb94 Update vwatch.bm so qb64.bas can be debugged 2022-02-22 23:39:00 -03:00
Kit 72126a1289
Make $NOPREFIX-friendly versions of $COLOR includes (#206)
* Create `$NOPREFIX`-friendly version of `color0.bi`

* Create color32_noprefix.bi

* add conditional for noprefix $color

* oh. it was that easy?

* Update CHANGELOG.md

* Update help files [ci-skip]

Co-authored-by: all-other-usernames-were-taken <74026992+all-other-usernames-were-taken@users.noreply.github.com>
2021-11-05 01:46:28 -03:00
FellippeHeitor 45fed463da Fix $Debug in Windows versions prior to 10 2021-10-17 01:51:28 -02:00
FellippeHeitor 69444a6864 Allow "quotes" around watchpoint string conditions 2021-09-29 22:08:02 -03:00
FellippeHeitor 6befb6faa0 Fix how _FLOAT is dealt with ($Debug).
Turns out QB64 promises to store all _FLOATs using 32 bytes.
I imagine that is how Galleon planned for eventually storing
larger floating point numbers, but, as it's been observed,
_FLOAT are actually `long double` variables, so they take up
16 bytes. This not a problem for regular variables, but it
does take a toll for arrays, as values are actually stored
as a sequence of 16-byte numbers.

This patch is a hack. But so is FLOAT right now.
2021-09-28 03:38:24 -03:00
FellippeHeitor 765b77c9bb Fix watchpoints for fixed-length strings in UDTs. 2021-09-28 01:52:16 -03:00
FellippeHeitor 602a32d3ba Fix watchpoints for strings in UDTs. 2021-09-28 01:24:30 -03:00
FellippeHeitor a157eb5f30 Switches focus to the IDE when an error is trapped. 2021-09-24 00:59:11 -03:00
FellippeHeitor f680e6bda0 Minor fix in vwatch.bm (signed vs unsigned) 2021-09-20 22:52:19 -03:00
FellippeHeitor 3e498df414 Fixes watching/sending values for _BIT arrays. 2021-09-20 22:04:24 -03:00
FellippeHeitor 3be8a806f8 Fixes watchpoints for strings 2021-09-18 19:30:55 -03:00
FellippeHeitor ce16f79f04 Improves visual indication of existing watchpoints. 2021-09-18 16:35:14 -03:00
FellippeHeitor a67dccae5b Allows setting watchpoints regardless of scope.
Adds "Clear Watchpoint" functionality.
Allows watching more than one array index/element.
2021-09-16 22:49:43 -03:00
FellippeHeitor 833e28aaf3 Removes test print lines. 2021-09-16 00:40:07 -03:00
FellippeHeitor 926b631f3b Implements watchpoints. 2021-09-16 00:04:20 -03:00
FellippeHeitor 17a116b19d Adapts "Send Value" to work with multiple array dimensions. 2021-09-09 20:34:04 -03:00
FellippeHeitor 357178652b Calls _KEYCLEAR before moving on with the debuggee.
In order to prevent unwanted keypresses eventually entered while in pause mode.
2021-09-09 00:35:51 -03:00
FellippeHeitor a37e3801d8 Adds support to watching arrays with multiple dimensions. 2021-09-08 22:48:03 -03:00
FellippeHeitor 7ba11565a5 Adds GetBytes so it's easier to add data to the packet ($DEBUG). 2021-09-03 00:03:28 -03:00
FellippeHeitor d62e307126 Implements setting value of arrays/UDTs. 2021-08-30 00:47:30 -03:00
FellippeHeitor 276536d467 Merges set address and set string address.
Next step is making arrays and UDTs work.
2021-08-28 16:54:16 -03:00
FellippeHeitor b8d50b09d2 Prevents errors with arrays in SUBs. 2021-08-25 21:34:36 -03:00
FellippeHeitor 13a9d4e8be Fixes bug watching variable-length strings in UDTs. 2021-08-24 23:48:22 -03:00
FellippeHeitor 3aff84bba8 Fixes STRING type detection in vwatch.bm 2021-08-24 15:56:19 -03:00
FellippeHeitor 38fe93a6cf Adds support for watching multiple indexes arrays of UDTs.
Not multiple dimensions yet tho.
2021-08-24 02:13:42 -03:00
FellippeHeitor 62f3496c36 Adds ability to fetch data from arrays of UDTs. 2021-08-23 18:02:22 -03:00
FellippeHeitor 687276bccd Adds support to STRING elements in UDTs. 2021-08-22 22:47:48 -03:00
FellippeHeitor bf9ab3458c Allows outputting the watch list to the console. 2021-08-22 11:49:48 -03:00
FellippeHeitor 9423080f6b Allows watching one element of UDTs (no strings yet). 2021-08-22 00:12:01 -03:00
FellippeHeitor 5a40ebd15b Attempt at pointing properly to the element offset. 2021-08-21 19:21:33 -03:00
FellippeHeitor 2fc7380fa6 Begins implementing ways to watch UDTs.
Still in a non-working state.
2021-08-20 16:10:28 -03:00
FellippeHeitor 9aa166e4de Checks for array's lbound and ubound before fetching data. 2021-08-19 19:10:51 -03:00
FellippeHeitor e311e2ee35 Optimizes $Debug internal protocol.
Less back-and-forth of commands to get variable data. Moves processing/address fetching almost entirely to `vwatch.bm`.
2021-08-19 01:05:47 -03:00
FellippeHeitor 744bd19107 Fixes race condition between vWatch and _CONSOLETITLE
It was a love triangle with _WindowHandle in the end, it's complicated.
2021-08-18 00:21:03 -03:00
FellippeHeitor 589357e472 Merge branch 'var-export' of https://github.com/QB64Team/qb64 into var-export 2021-08-17 00:47:56 -03:00
FellippeHeitor f279839a7b Reduces number of commands to get a variable's value. 2021-08-17 00:47:13 -03:00
Fellippe Heitor 25f53e032c Prevents crashing when using INPUT and 2021-08-16 11:52:45 -03:00
FellippeHeitor eeff3207d6 Preliminary work to watch arrays (native types).
Strings not working yet.
2021-08-16 01:32:07 -03:00
FellippeHeitor ecfb439ff0 Changes communication protocol so it doesn't rely on end markers.
The message length precedes the message, so no <END> marker is required anymore.
2021-08-15 13:56:22 -03:00
FellippeHeitor b1f53bedf3 Allows QB64 to be used to debug itself again. 2021-08-15 00:49:06 -03:00
FellippeHeitor 2af2f4e2a1 Improves handling/signaling of INPUT/LINE INPUT in $DEBUG mode. 2021-08-14 21:28:21 -03:00
FellippeHeitor d2cf042c45 Makes vwatch.bm try harder to send its own hWnd. 2021-08-14 21:27:57 -03:00
FellippeHeitor 8dddefd002 Brings debuggee window to foreground when using INPUT. 2021-08-14 17:04:25 -03:00
FellippeHeitor cca1593f79 Switches focus to IDE automatically when breakpoint is reached.
Windows-only.
2021-08-12 23:00:43 -03:00
FellippeHeitor 85c1e79997 Prevents endless loop when quitting the debuggee. 2021-08-04 21:23:59 -03:00
FellippeHeitor 0bbc60e73e Allows reading program_stop without using _Exit. 2021-08-04 21:12:33 -03:00
FellippeHeitor 600fa69786 Allows setting fixed-length strings from the IDE.
Displaying them was buggy too, due to them having CHR$(0) before being initialized.
2021-08-03 15:14:18 -03:00
FellippeHeitor c57eab997e Allows sending variable data even before reading addresses. 2021-08-03 04:08:58 -03:00