| |
TheWarCriminal Account closed
Registered: May 2011 Posts: 30 |
ACME screen codes Assembly
In C64 Studio BASIC IDE it has ACME screen code conversions inside curly brackets but these don't work in the assembly editor even though the editor is ACME. What are these codes (ie: home, clear home, cursor left, ect) or am I going to have to do this the hard way by creating a parser? |
|
| |
Endurion
Registered: Mar 2007 Posts: 73 |
Ah, you want to use them like this:
!text "{clear}{home}" ?
Good idea for a feature, I'll put it on my TODO list! |
| |
Krill
Registered: Apr 2002 Posts: 2980 |
Quoting TheWarCriminalor am I going to have to do this the hard way by creating a parser? As you're requesting some kind of syntactic sugar, i guess the hard way would be the traditional way of mixing symbols (resolving to PETSCII control character byte values) and strings, like!text CLR, HOME, "hello" (Yes, i'm aware that this might not exactly fit ACME or C64 Studio syntax, but you get the idea.) |
| |
Endurion
Registered: Mar 2007 Posts: 73 |
Hacked the support in, try with the WIP release at https://www.georg-rottensteiner.de/webmisc/C64StudioRelease.zip
All variants that are supported by the BASIC "compiler" are also now in the assembler.
Edit: Of course the first try was completely wrong, now it works properly for all text types (!text, !pet, !raw, !scr)
Please re-download from the link.
Edit #2: Aaaand fixed the fix. Now it really does work properly.
Please re-re-download from the link. |
| |
TheWarCriminal Account closed
Registered: May 2011 Posts: 30 |
I don't know if this issue has been brought up but there is an error/bug in the label mode of the basic ide (BASIV V2):
if you decide to remove the line numbers & put labels in representing the goto/gosub routines, then click build/rebuild you get "missing line numbers" on each 'line'.
ie:
REM ++++FROM HERE TO APP BEGIN ARE NEEDED FOR ALL APPS
LABEL0
IFMX=0THENMX=1:LOAD"HBBS.ML",8,1
SD=8:DIM AG$(10),UI$(20),PR$(23):MD=0:VR$="38400":VB$="PSYCHOTIC REACTION"
J0%=9728:J1%=16427:J2%=17408:J3%=17488:J4%=17664:POKE53281,0:P1%=9895
P2%=10454
error box:
16;E3000;;Missing line number
15;E3000;;Missing line number
14;E3000;;Missing line number
13;E3000;;Missing line number
12;E3000;;Missing line number
11;E3000;;Missing line number
I excluded lines #1-10 since they are at the start and are rem statements |
| |
Endurion
Registered: Mar 2007 Posts: 73 |
Ah, thanks! C64Studio ought to automatically toggle to non label mode for compiling; I'll fix that. |
| |
Endurion
Registered: Mar 2007 Posts: 73 |
Uploaded the fixed version as WIP to https://www.georg-rottensteiner.de/webmisc/C64StudioRelease.zip
Thanks once more for notifiying me of the issue! |
| |
TheWarCriminal Account closed
Registered: May 2011 Posts: 30 |
I know I am asking for a lot here but it is to make it more
easy:
"project solution":
when removing a file from solution could the delete option be a separate click instead being with the remove click? Already made the mistake clicking on yes before reading the dialog cause I was thinking the IDE was akin to VS since perm delete is another click on the cascade menu.
Would it be hard to add a BASIC V2 importer w/ disassembler?
And add BASIC V2 to ML compiler? (I can port the code over but it takes a while to test each sub routine for bugs)
Another idea: In the BASIC IDE could there be an option to limit string area before & after a ML block so the strings won't overwrite the ML? I know how to do it but it would be simple for others.
Another cool feature would be a snippet library either offline for the user to save or online for the community (both IDEs). That way no one has to reinvent a routine.
I like C64 Studio over CBM Studio & the VS plugin.
Thanks a bunch for the last 2 patches. They have helped. |
| |
Krill
Registered: Apr 2002 Posts: 2980 |
Quoting TheWarCriminalWould it be hard to add a BASIC V2 importer w/ disassembler?
And add BASIC V2 to ML compiler? Not sure where this is aiming. Do you want to mix compiled BASIC V2 code with manually-crafted assembly, or tweak the compiled code? |
| |
TheWarCriminal Account closed
Registered: May 2011 Posts: 30 |
no. Something like what mospeed does. Compile straight to assembly. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
Doesnt it compile to p-code? |
| |
Krill
Registered: Apr 2002 Posts: 2980 |
Was there ever a BASIC compiler producing assembly rather than straight to machine code binaries (either native or for some bytecode interpreter/VM)? |
| |
Silver Dream !
Registered: Nov 2005 Posts: 108 |
Quoting KrillWas there ever a BASIC compiler producing assembly rather than straight to machine code binaries (either native or for some bytecode interpreter/VM)?
The best native one I recall ever using was "Basic Boss", which was pretty awesome to me at the time. Especially when compared to all the "speedcode" based ones. Don't recall seeing anything that would output assembly, which could be further tweaked or optimised. |
| |
Endurion
Registered: Mar 2007 Posts: 73 |
Quote: I know I am asking for a lot here but it is to make it more
easy:
"project solution":
when removing a file from solution could the delete option be a separate click instead being with the remove click? Already made the mistake clicking on yes before reading the dialog cause I was thinking the IDE was akin to VS since perm delete is another click on the cascade menu.
Would it be hard to add a BASIC V2 importer w/ disassembler?
And add BASIC V2 to ML compiler? (I can port the code over but it takes a while to test each sub routine for bugs)
Another idea: In the BASIC IDE could there be an option to limit string area before & after a ML block so the strings won't overwrite the ML? I know how to do it but it would be simple for others.
Another cool feature would be a snippet library either offline for the user to save or online for the community (both IDEs). That way no one has to reinvent a routine.
I like C64 Studio over CBM Studio & the VS plugin.
Thanks a bunch for the last 2 patches. They have helped.
Interesting stuff.
What do you mean with "BASIC V2 importer w/ disassembler"? Open a BASIC file and disassemble any ML routines (stored in DATA blocks, or appended after the BASIC code)?
Also, could you give some simple examples for
1) And add BASIC V2 to ML compiler? (I can port the code over but it takes a while to test each sub routine for bugs)
Basically, translate the BASIC code to assembler? (wherever that's possible)
2)
Another idea: In the BASIC IDE could there be an option to limit string area before & after a ML block so the strings won't overwrite the ML? I know how to do it but it would be simple for others.
What would that do? Add POKEs to the BASIC code to set the string area? |
| |
Mac Bacon
Registered: Feb 2016 Posts: 6 |
Quoting Krilllike!text CLR, HOME, "hello" (Yes, i'm aware that this might not exactly fit ACME or C64 Studio syntax, but you get the idea.)
might not exactly fit ACME syntax?
use !src <cbm/c64/petscii.a> to get definitions for PetSCII control characters. :D |