Foenix IDE - Rev C

Description of your first forum.
User avatar
grenouye
Posts: 43
Joined: Sat Apr 13, 2019 1:57 pm
Location: Halifax, NS
Contact:

Foenix IDE - Rev C

Post by grenouye » Tue Mar 03, 2020 3:59 am

Hi everyone,
I've started working on the new Rev C variant of the IDE.
Since I didn't want to screw up all existing programs out there, I implemented a BoardRevision switcher in the Main Window Tool Strip.

Also, someone mentioned that we should implement the DIP switches, so I started doing this too.

The new FMX kernel has a built-in basic, and the emulator is having trouble with some of the opcodes. So I'll be debugging this next.

The SD Card controller was changed for the Rev C, so I'll have to figure out a way to switch between the two modes.

I'm really not sure how much support we will need for Rev B, so if you think it's futile to support it, please let me know. I think there were less than a dozen boards built.
Attachments
FoenixIDE-FMX.PNG
FoenixIDE-FMX.PNG (258.66 KiB) Viewed 3504 times
User avatar
grenouye
Posts: 43
Joined: Sat Apr 13, 2019 1:57 pm
Location: Halifax, NS
Contact:

Re: Foenix IDE - Rev C

Post by grenouye » Sun Mar 15, 2020 3:59 am

There have been many updates to the IDE since last week.

The FMX kernel is loaded by default, when you start the IDE. So, just press Run(F5) in the CPU Window and you will see the usual prompt. Disable "Break on IRQ" if you want to test BASIC816.

If you wouldn't mind sending me your average FPS and CPS, along with CPU type and memory, I will keep making improvements.
With application Fragger (lots of sprites and tiles), I'm getting CPS: 12MHz+ and FPS: 63, i7 7700HQ @ 2.8Ghz, with 32 GB RAM.

Release 0.3.1.2
  • Started to use the Multimedia Timer to improve drawing time.
  • Updated the Bitmap loader to allow uploading of bin files directly anywhere in memory.
  • Tied the CPU thread to the CPU Window. Not sure why this wasn't done before.
  • Adjusted loading and starting of the system without re-initializing memory.
  • Fixed slow GPU FPS (frames per second) when drawing tiles.
  • Fixed a problem in the UploaderWindow that was resetting vectors to 0, instead of leaving existing values untouched.
  • Added a Save button to the MemoryWindow, when downloading from the Foenix.
aniou
Posts: 1
Joined: Wed Jun 19, 2019 6:16 pm

Re: Foenix IDE - Rev C

Post by aniou » Mon Mar 16, 2020 7:49 pm

grenouye wrote:
Sun Mar 15, 2020 3:59 am
Fixed a problem in the UploaderWindow that was resetting vectors to 0, instead of leaving existing values untouched.
Yay! Thanks!
User avatar
grenouye
Posts: 43
Joined: Sat Apr 13, 2019 1:57 pm
Location: Halifax, NS
Contact:

Re: Foenix IDE - Rev C

Post by grenouye » Sat Mar 21, 2020 3:44 am

I have just release version 0.4.0.0 of the Foenix IDE. The IDE now has a Character Editor.

You can load *.bin, *.bmp and *.png files and edit them. Each character is 8 bytes and there are 256 characters.
When you are finished editing your character set, save the file as *.bin. You can then include it in your assembly code with the ".binary" 64tass command.
FoenixIDE-CharacterEditor.png
FoenixIDE-CharacterEditor.png (30.55 KiB) Viewed 3405 times
User avatar
stef
Posts: 102
Joined: Thu Jan 01, 1970 12:00 am
Location: Somewhere in the Universe
Contact:

Re: Foenix IDE - Rev C

Post by stef » Sat Mar 21, 2020 6:03 am

grenouye wrote:
Sat Mar 21, 2020 3:44 am
I have just release version 0.4.0.0 of the Foenix IDE. The IDE now has a Character Editor.

You can load *.bin, *.bmp and *.png files and edit them. Each character is 8 bytes and there are 256 characters.
When you are finished editing your character set, save the file as *.bin. You can then include it in your assembly code with the ".binary" 64tass command.

FoenixIDE-CharacterEditor.png
This is pretty awesome Dan! Good job!

Cheers
Stefany
Mistress of All Villainy
User avatar
grenouye
Posts: 43
Joined: Sat Apr 13, 2019 1:57 pm
Location: Halifax, NS
Contact:

Re: Foenix IDE - Rev C

Post by grenouye » Thu Apr 23, 2020 12:37 am

Hey Foenix Fans!

A quick update on new development of the IDE since last month. We are now at release 0.4.1.7. Of course, you can browse the Release Notes in the project Github file: https://github.com/Trinity-11/FoenixIDE
  • * Many CPU opcodes were fixed (CMP, PL* NZ issues)
    * Optimized the graphics rendering - hopefully everyone gets 60 frames per second
    * Improved the Step Over ability in the CPU Window
    * SD Card emulation for FAT16 and FAT12
    * Updated the Virtual Joystick (it also accepts ASDW for movement, instead of mouse clicks and E & Q for the buttons.
    * Added a new Watch List window - which is connected to the Memory Window and the CPU Window - watches can be saved and loaded from the File Menu.
    * Updated the CPU Window labels and breakpoints - you can also add labels to the code now.
    * Added a random number generator at address $AF:E884, just like the real machine
Here are a few screenshots:
joystick.png
joystick.png (1.77 KiB) Viewed 3286 times
The Virtual Joystick writes into the address $AF:E800. When the joystick is at rest, the value $9F is present.
When the Virtual Joystick form has focus, pressing the keyboard keys "A","S","D" and "W" will move the joystick in the proper direction. Keys "Q" and "E" are mapped to button 1 and 2, respectively.

cpu-window.png
cpu-window.png (49.28 KiB) Viewed 3286 times
The CPU Window has been update to fix several issues with displaying labels and breakpoints. The labels are now shown in the margin (with a blue background). Breakpoints are shown as a big red dot, also in the margin.
The Step Over (F7) functionality has been updated to properly jump to addresses for the BRA, BRL, JMP and JML.
Added the Reset button: this is the same as the "Reset | Restart" in the Main Window.
Added the Watch button: this is the same as the "Windows " Watch List" in the Main Window.
Labels can now be added in the code, by using the overlay "L" button.
You'll also notice that the Accumulator Register now shows the B portion with a black background when the accumulator is short (8 bits).

watch-list.png
watch-list.png (13.45 KiB) Viewed 3286 times
This is a completely new window that allows developers to add Memory Addresses they are interesting in keeping an eye on without having to use the Memory Window.
The watch list is updated every second as the code runs.
You can addresses by hovering over "absolute" addresses in the CPU window or by typing them in.
Once an address is listed, the 8 bit and 16 bit values are displayed.
Clicking the Memory Window button displays the page for the address in the Memory Window.
frenchguy
Posts: 37
Joined: Tue Oct 01, 2019 11:45 am

Re: Foenix IDE - Rev C

Post by frenchguy » Mon Sep 14, 2020 1:57 pm

Hi,
Is there support for mouse implemented in the IDE ? I do not get break on mouse interrupt. I also do not see modification in the reg0 about the mouse interrupt. I am using the IDE with default provided Kernel, and start the kernel before load and running my program.
And is it compatible with 800x600 resolution of Vicky II ?
User avatar
grenouye
Posts: 43
Joined: Sat Apr 13, 2019 1:57 pm
Location: Halifax, NS
Contact:

Re: Foenix IDE - Rev C

Post by grenouye » Wed Sep 16, 2020 1:06 am

Finally, the Foenix IDE has been updated to support the new Vicky II display modes. Version 0.5.0.1 now supports scrolling tiles, high-resolution and pixel doubling.

See here to download the source and binary: https://github.com/Trinity-11/FoenixIDE ... se-0.5.0.1

To see a video of the tiles and scrolling, see here:
User avatar
grenouye
Posts: 43
Joined: Sat Apr 13, 2019 1:57 pm
Location: Halifax, NS
Contact:

Re: Foenix IDE - Rev C

Post by grenouye » Wed Sep 16, 2020 1:22 am

frenchguy wrote:
Mon Sep 14, 2020 1:57 pm
Hi,
Is there support for mouse implemented in the IDE ? I do not get break on mouse interrupt. I also do not see modification in the reg0 about the mouse interrupt. I am using the IDE with default provided Kernel, and start the kernel before load and running my program.
And is it compatible with 800x600 resolution of Vicky II ?
The mouse support in the IDE doesn't raise interrupts. The value of the X and Y positions are stored in the in Vicky addresses $AF:0702 and $AF:0704, respectively. This allowed for testing of the drawing of the mouse pointer.
This was much simpler than imitating the SuperIO chip. Especially, since we need to raise 3 interrupts for each mouse movement.
frenchguy
Posts: 37
Joined: Tue Oct 01, 2019 11:45 am

Re: Foenix IDE - Rev C

Post by frenchguy » Wed Sep 16, 2020 1:47 am

grenouye wrote:
Wed Sep 16, 2020 1:22 am
frenchguy wrote:
Mon Sep 14, 2020 1:57 pm
Hi,
Is there support for mouse implemented in the IDE ? I do not get break on mouse interrupt. I also do not see modification in the reg0 about the mouse interrupt. I am using the IDE with default provided Kernel, and start the kernel before load and running my program.
And is it compatible with 800x600 resolution of Vicky II ?
The mouse support in the IDE doesn't raise interrupts. The value of the X and Y positions are stored in the in Vicky addresses $AF:0702 and $AF:0704, respectively. This allowed for testing of the drawing of the mouse pointer.
This was much simpler than imitating the SuperIO chip. Especially, since we need to raise 3 interrupts for each mouse movement.
Ok, thanks!
So I guess that mouse clicks neither raise interrupts ? In that case I will have to find a workaround 😁... maybe check buttons state on SOF 🤔. Unless you can add this interrupt raise in the IDE ?

Update: I have just made a quick update to take new VickyII MCR and Bitmap Control Register into account for 800x600, and a quick test, and it works fine :+1:

You can check the ongoing work here : https://www.youtube.com/channel/UCYlxuo ... nc9if15xA/
Post Reply