Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Relaunch64 #3 Beta1 released!
2013-01-06 13:23
The Gothicman
Account closed

Registered: Aug 2011
Posts: 40
Relaunch64 #3 Beta1 released!

Relaunch64 #3 Beta1 released!

Now as JAR-file.
Looks promising to me :)

http://www.popelganda.de/
2013-01-30 11:53
ELA
Account closed

Registered: Aug 2008
Posts: 14
I've used the previous Relaunch a few years and it worked fine. This new version looks totally reworked - it is slimmer and although it has less menus and options it still has enough features to do the job.
It was very quick to setup for Kickassembler/Winvice2.4 and ran my old code right away.

I know this is beta but there were some bugs:
Compile shortcut F6 don't work (gotta click on menu) and I can't get the Find function to work at all.
If I start typing a new assembler file I can't save it. I gotta make a blank .asm file first, load it and then I can save changes.
For future updates I could like some way to clear the "Compiler Output Window" :-)

I really like Relaunch64 and it's easy to use (even for a guy with a slow mind like mine) ;-)

ELA/Antimon
2013-01-30 12:09
Cruzer

Registered: Dec 2001
Posts: 1048
Tried it for the first time. Seems to miss some basic options like font and tab size. Proportional fonts are just wrong for asm code.
2013-01-30 12:38
chatGPZ

Registered: Dec 2001
Posts: 11386
could someone explain what makes this editor more useful than say, a proper setup ultraedit (or emacs/vi if you must) ?
2013-01-30 13:04
ELA
Account closed

Registered: Aug 2008
Posts: 14
Is that even a fair question? Your favorite $59.95 editor with tons of features against a tiny and free c64-only editor in early beta? ;-)
2013-01-30 13:13
chatGPZ

Registered: Dec 2001
Posts: 11386
its not about fairness really. and if you dont like comparing with a commercial editor, let me know what it can do better than say "kate" or "textmate" or "notepad+" or any other of the tons of very decent free texteditors out there. i just dont see the point at all.
2013-01-30 14:33
ELA
Account closed

Registered: Aug 2008
Posts: 14
I think it's a matter of taste. All these editors seem to feature 6502-coloring and running assembler+emulator directly from editor. Different in Relaunch is the output-window on the side I think - which is nice for people like me who forget a ":" behind labels all the time ;-)
The silly thing is that Relaunch still misses showing linenumbers. So not much good reporting which lines in sourcecode that have errors :-)

Now if I only can get my Notepad++ to run kickass.jar with the current .asm file as input then maybe I will turn to coding with my favorite text editor...
2013-01-30 14:41
chatGPZ

Registered: Dec 2001
Posts: 11386
"Different in Relaunch is the output-window on the side I think - which is nice for people like me who forget a ":" behind labels all the time ;-)"
no idea what you mean.... but if you mean that the editor shows the output of commandline tools - most other decent editors can do that too. including being able to click on the output and jump to the respective file and line in the source ofcourse :)
2013-01-30 14:50
Oswald

Registered: Apr 2002
Posts: 5094
ELA:

it's ugly but will help you to get going:

locate appdata/notepad++/shortcuts.xml. add into userdefined commands this line (make sure notepad++ is not running while editing!):

<Command name="Run in Vice" Ctrl="no" Alt="yes" Shift="no" Key="114">c:\64start.bat &quot;$(FULL_CURRENT_PATH)&quot;</Command>

this will launch c:\64start.bat if you press alt+f3 / or in the menu,with the edited file's name ,path included. this is the trick:&quot;$(FULL_CURRENT_PATH)&quot;

this is what I have in 64start.bat:


c:\64tass.exe %1 -o c:\splash.prg
pause
c:\pucrunch c:\splash.prg c:\splashp.prg -m6 -fs -p2 -x0x1000
c:\WinVice\x64 c:\splashp.prg

yeah, the compiled filename is fixed, but you could pass the filename without extension to the batch aswell, look around in the manual. setting up workdir for the batch can also give some nice headaches :) and yes it could be done much better but I am teh lazy :)
2013-01-30 22:23
ELA
Account closed

Registered: Aug 2008
Posts: 14
Thanks for help, Oswald :-)
Windows would not let me edit the shortcuts.xml (Vista restricts much under \Program Files). But I still got the change done inside Notepad++.

In the menu Run->Run I typed in:
F:\c64start.bat "$(FULL_CURRENT_PATH)"
then clicked Save, made a title "Winvice" and chose a shortcut key to start up the command.
This will give a new line at bottom of Run-menu showing "Winvice" and the shortcut key chosen.

Alt-F3 for some reason is taken by Opera on my machine and opens a Wikipedia-page about whatever text you have marked even if Opera was closed when hitting alt-f3. I have tried some other keys but not found a free one yet so I just start up by choosing the command in Run-menu or press F5 and Enter which runs last command you made.

My C64start.bat ended up like this:
java -jar f:\c64code\kickass.jar %1 -o f:\c64code\notepad.prg
pause
f:\c64code\winvice-2.4-x86\x64 f:\c64code\notepad.prg

Also I found a 6502 syntax highlighting for Notepad++ on Codebase64: http://codebase64.org/doku.php?id=base:crossdev
Use the menu Language->Define your own language
and import the xml and it links itself to *.a and *.asm files.

@groepaz: you can test relaunch yourself really quick, no install required just run a jar-file. I don't think I am that great at explaining editors...
2013-01-30 22:30
chatGPZ

Registered: Dec 2001
Posts: 11386
if you cant tell what makes it better than the editor i am using (which happens to be kate), i dont see a need really. i am not missing anything :)
2013-02-02 08:03
TTE
Account closed

Registered: Jan 2013
Posts: 2
Hi all, beta 2 of Relaunch64 released:

http://www.popelganda.de/Relaunch64_beta2.jar
https://sourceforge.net/projec...-Releases/ (sourcecode)

Find/Replace and Undo/Redo implemented. But, undo/redo also undoes each highlightig step, which should actually be ignored as undo action, but this don't work right now. Trying to figure out how I can solve this problem.

I don't think it's that important to know or "prove" which editor is the better one. It might be a matter of taste on the one hand, and having alternatives, on the other hand, isn't also that bad either. I'm always open to feature suggestions. I'm happy if people like Relaunch64 and use it. And finally, I also do this because I like to do some programming in my free time. ;-)

Best wishes
Daniel
2013-02-02 08:20
TTE
Account closed

Registered: Jan 2013
Posts: 2
Quote: I think it's a matter of taste. All these editors seem to feature 6502-coloring and running assembler+emulator directly from editor. Different in Relaunch is the output-window on the side I think - which is nice for people like me who forget a ":" behind labels all the time ;-)
The silly thing is that Relaunch still misses showing linenumbers. So not much good reporting which lines in sourcecode that have errors :-)

Now if I only can get my Notepad++ to run kickass.jar with the current .asm file as input then maybe I will turn to coding with my favorite text editor...


Line numbers are now supported in the current beta 2-release :-)
2014-04-18 16:02
Testicle
Account closed

Registered: Sep 2002
Posts: 131
May I hijack this old thread?

I'm working on Relaunch64 again, and beta 8 is released. You find further information on:
http://www.popelganda.de (homepage)
https://sourceforge.net/projects/relaunch64/files/ (binaries jar/exe)
https://github.com/sjPlot/Relaunch64 (latest source)

The current beta 8 requires Java 8 installed. I've added a lot of features since the release from 1 year ago. Currently, ACME and KickAss are supported as compilers. Frodo, Vice, CCS64 and Emu64 are supported emulators.

The application's log and emulator/compiler log were separated, but with beta 8 I integrated them into one panel on the lower right part of the screen. If you have any ideas what to put in the upper right panel, let me know :-)

Btw, is anybody still using Relaunch64 or is probably going to use it? If there's not much interest in further development, I would probably spend less energy to it.

Best wishes
Daniel
2014-04-18 16:57
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Added release to CSDB: Relaunch64 V3.0 Beta 8
2014-04-18 19:16
satpro
Account closed

Registered: Oct 2013
Posts: 7
Works fine with 64Tass!

This version is better. It's my first stab at a Version 3 release. Version 2 would grab a ridiculous amount of memory, but this one is fine. Good job.
2014-04-18 19:30
soci

Registered: Sep 2003
Posts: 480
I think there must have been a good reason this was coded exclusively for Java SE 8.

It's like I would write something which only runs with Python 3.4 but not on any earlier versions. (it was released a day before Java SE 8)

There's a difference though. There's a python 3.4 package, while there's only an openjdk-7 package in Debian.

But I'm probably not the right user for this anyway ;(
2014-04-18 19:48
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Quote: I think there must have been a good reason this was coded exclusively for Java SE 8.

It's like I would write something which only runs with Python 3.4 but not on any earlier versions. (it was released a day before Java SE 8)

There's a difference though. There's a python 3.4 package, while there's only an openjdk-7 package in Debian.

But I'm probably not the right user for this anyway ;(


I wanted to see and use the new features of Java 8, and since Java 8 is available for windows, Linux and OS X, I thought there won't be much restrictions for other users. And, Java 8 is said to be faster than java 6 and 7... :-)
2014-04-19 09:10
spider-j

Registered: Oct 2004
Posts: 498
Just updated my system: OpenJDK 8 is still not in arch linux repos, too. Sorry, but I won't start compiling sth. like Java which is a dependancy of many other packages just to try out this one tool. Guess I'll just wait.
2014-04-19 14:19
MagerValp

Registered: Dec 2001
Posts: 1078
http://www.oracle.com/technetwork/java/javase/downloads/jre8-do..
2014-04-19 15:24
soci

Registered: Sep 2003
Posts: 480
Ok, that makes sense, I also like to use the latest features in my sources.

Magervalp: I'm aware of that. It was accounted for when I decided weather I try this software or go and do something else instead.
2014-04-20 19:28
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Ok, I released a new beta, both for Java7 and Java8.

The latest beta 9 for Java 8:
https://sourceforge.net/projects/relaunch64/files/Beta-Releases/

The latest beta 9 for Java 7:
https://sourceforge.net/projects/relaunch64/files/Beta-Releases..

(the Java7-Version is missing some minor features, like automatic number conversion when selecting a decimal/hexa/binary number in the source...)

New features:
- Auto-completion / label suggestions (Ctrl+Space)
- Goto Label
- Goto Function
- Jump to Function
(see menu Source)

More features like breakpoint-support and the gimmicks of the "old" Windows-version 2.0 of Relaunch will follow soon...

Best wishes
Daniel
2014-04-21 08:02
soci

Registered: Sep 2003
Posts: 480
Thanks for the update! Now I had a chance to try it.

Some remarks:
- there's no font selection in the menu. It's possible to do it by directly editing the xml settings. I see something about font selection in the source, but possibly it's not used yet or it's well hidden.
- there's a number converter, what if it could simple numeric expression evaluation?
- can it open files given on the command line on start up? Possibly I'm doing something wrong, or not yet.

Regarding performance, it's ok for small files or projects with many small files. In the later case the jump to label function is not that useful any more.

Just out of interest I've tried it with a 8.5K lines source file. It probably loads fast, but the syntax highlighting takes around 11s on a 1.7GHz machine.

I think there's some quadratic behaviour on line insertion. It's the fastest at the end, 2.4s in the middle, 11.6s at 1000 lines, and 26s on top.

What's interesting that around half the waiting time the line insertion is finished, but then it's not possible to write until the full time has elapsed.

Character insertion/deletion seems linear, around 600ms on top or so.

Then I've switched over from ACME to Kick assembler syntax highlighting. In this case the line insertion/deletion is almost the same as character insert/delete. (that is slow but usable, 800ms worst)

The asm source was written in neither of these two variants, but ACME recognized more. (especially labels)

Your source is better commented than my average stuff ;) Unfortunately I don't program in java to help to find out where the time is spent in ACME mode. But most people will not push the limits that much anyway.
2014-04-21 08:11
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Thanks a lot for your feedback!
I'm not sure whether there are significant performance issues between Linux and Windows. I've ran Relaunch under Win7 and Ubuntu 13.10, and it seemed to me that Windows runs the jar more fluently... But I'll try to figure out whether performance can be improved. I guess it's particular the syntax highlighting stuff.

The source is not yet much documented. I'm too lazy to do this, but I'll try to add some documentation so others (and myself) do better understand the source.

- there's no font selection in the menu. It's possible to do it by directly editing the xml settings. I see something about font selection in the source, but possibly it's not used yet or it's well hidden.

Currently, color scheme and fonts can only be edited manually in the XML file.

- there's a number converter, what if it could simple numeric expression evaluation?

What do you mean by that?

- can it open files given on the command line on start up? Possibly I'm doing something wrong, or not yet.

Command line parameter not supported yet.

- The asm source was written in neither of these two variants, but ACME recognized more. (especially labels)

What do you mean by that?


Best wishes
Daniel
2014-04-21 10:50
soci

Registered: Sep 2003
Posts: 480
Quoting Testicle
- there's a number converter, what if it could simple numeric expression evaluation?

What do you mean by that?


Right now I can enter numbers and it gives me conversions. What if I could enter something like $43*5 instead of a simple number?

Quoting Testicle
- The asm source was written in neither of these two variants, but ACME recognized more. (especially labels)

What do you mean by that?


In my test only part of the source was highlighted, not everything. The result might be different from a similar sized source which is properly highlighted everywhere.

I had a theory that maybe the label processing was on fault (I saw some lists here and there). I tried now and it didn't made much difference if I changed the labels in a way that they were not recognized any more.
2014-04-21 13:06
soci

Registered: Sep 2003
Posts: 480
I've did some searches on the matter and it seems JEditorPane itself is causing the performance problem. Possibly it could be worked around by only highlighting the part displayed and keep the rest plain. Sounds fun to implement ;)
2014-04-22 12:43
Testicle
Account closed

Registered: Sep 2002
Posts: 131
I just released beta 10 on Sourceforge, including JRE7-binaries:

https://sourceforge.net/projects/relaunch64/files/Beta-Releases/
https://sourceforge.net/projects/relaunch64/files/Beta-Releases..

I fixed several bugs with auto-suggestion etc. and implemented a "cross-tab-goto-function", i.e. whenever you start a Goto-action via the Navigate-menu, you'll see all labels/functions/sections/macros of all currently opened files. The combobox highlights the filenames, so you see which macro/label/etc. belongs to which file.

Note that all "Goto"-functions now share the same dropdown box in order to save space and keep user interface minimal. The content is created on context, i.e. which menu item in the Navigate menu is selected. Both hitting enter key and mouse click will goto the selected item.

Furthermore, startup-parameters (Command line parameter) should work now.
2014-04-23 23:15
soci

Registered: Sep 2003
Posts: 480
Good, navigation is much better now for split files ;)

Further remarks:
- There's no need for an untitled tab if files are opened from the command line
- Are there any key combinations to navigate between tabs?
- If I create a new file and save it then I get a save dialog every time I save. Normally it should come up only for the first time. It works ok when an existing file was opened modified and saved.
- It's always starting with Vice and Kick selected. What if that's not the favourite combination?
- Is it common to have a mixed assembler project? I think a global assembler for all tabs is enough.
- If I save a newly created file there's a lot of debug output in the console (NullPointerException, InvocationTargetException, etc.)
2014-04-24 05:27
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Thank you very much for your constructive feedback again!

- There's no need for an untitled tab if files are opened from the command line
Yes, I'll try to fix that "issue".

- Are there any key combinations to navigate between tabs?
The default behaviour, if the text component has the focus, is that ctrl+tab and ctrl+shift+tab move on to the next component. Thus, pressing ctrl+shift+tab would move the focus to the tabs. However, once the tab has the focus you can use arrow-keys and ctrl+tab and ctrl+shift+tab to switch between tabs. To move focus to the text editor, you need to press "tab"...

- If I create a new file and save it then I get a save dialog every time I save. Normally it should come up only for the first time. It works ok when an existing file was opened modified and saved.
Fixed.

- It's always starting with Vice and Kick selected. What if that's not the favourite combination?
I'll offer a "preferred" setting in the preferences, so the preferred eum/compiler is always selected by default.

- Is it common to have a mixed assembler project? I think a global assembler for all tabs is enough.
Probably not, but I personally use it quite a lot. It's not only selecting different compilers, but also the parameter-textfield gives you the option to use parameters "on the fly" that override the global settings. Might be useful... ?

- If I save a newly created file there's a lot of debug output in the console (NullPointerException, InvocationTargetException, etc.)
I can't reproduce that bug, but I'll check under Linux.

There are also some other new features added, a new beta to be released when I fixed your issues.

Best wishes
Daniel
2014-04-24 07:45
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Ok, initial tab will be closed if not needed and a file is opened. And you can select your preferred compiler and emulator in the preferences, which will be set by default.

What are other common and often used cross assemblers? Currently, there'S specific support for KickAssembler and ACME. Relaunch64 may work with other cross assembler as well, but there are probably highlighting issue etc. So I would like to implement support for further cross assemblers...

Any suggestions which could be added?

Best
Daniel
2014-04-24 09:23
ELA
Account closed

Registered: Aug 2008
Posts: 14
If I change a file without saving and try to quit I am asked if I want to save the files before quitting but nothing happens when selecting "yes".
It's basically same as pressing "cancel". Also if I type something in untitled file and quit I am not offered to give file a name and it doesn't quit.

About the log panels: I wonder if there could be a way to clear them. Is there a plan for the space above the logs since there's some free space there and divider.
2014-04-24 10:29
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Hi ELA,

thanks for your feedback. I fixed the save-on-exit-bug.

You can clear the logs by right-clicking on the tabs.

According to the empty space: I have no final plan yet, so I appreciate any suggestions. Probabyl a tree-view based file-chooser or a source-code-snippet tools... (or both, I can also add tabs to that space, providing several "tools").

Best
Daniel

P.S.: 64tass support implemented. Beta 11 coming soon...
2014-04-24 17:47
soci

Registered: Sep 2003
Posts: 480
Quoting Testicle

- Are there any key combinations to navigate between tabs?
The default behaviour, if the text component has the focus, is that ctrl+tab and ctrl+shift+tab move on to the next component. Thus, pressing ctrl+shift+tab would move the focus to the tabs. However, once the tab has the focus you can use arrow-keys and ctrl+tab and ctrl+shift+tab to switch between tabs. To move focus to the text editor, you need to press "tab"...


This works a bit strange. If I'm in the editor and keep pressing ctrl+tab, it goes to the logs and keeps cycling between the two log tabs. Shift+tab goes back to the editor and nothing else happens when repeated. Ctrl+Shift+tab goes on top, then ctrl+tab and ctrl+shift+tab works reasonable. A bit more consistency would be needed.

What I was looking for is something that would switch between tabs and it keeps the focus in the editor/log instead of moving it to the top. And with less finger use, e.g. ctrl+pgup/pgdn.

Quoting Testicle

- Is it common to have a mixed assembler project? I think a global assembler for all tabs is enough.
Probably not, but I personally use it quite a lot. It's not only selecting different compilers, but also the parameter-textfield gives you the option to use parameters "on the fly" that override the global settings. Might be useful... ?


The parameter field is clear now and is useful for things like "-D DEBUG=1". Selecting a different compiler or tab does not affect the parameter fields content. I'm not sure what you mean.

Thanks for fixing the other stuff!

I think it was mentioned above but maybe it was forgotten. Is it possible to implement log parsing for fault messages and jump to them? Manually typing/copy pasting them into the goto field is far from optimal.

I'm not sure, but there must be some option for the file selector to only accept files, and not directories. This is a problem when I try to use the compiler/assembler path setup dialog with keyboard only.

There's some problem here on Linux/jre7 with the program execution (assembler/emulator):
Caused by: java.lang.NullPointerException
at de.relaunch64.popelganda.Relaunch64View.compileFile(Relaunch64View.java:980)
at de.relaunch64.popelganda.Relaunch64View.runFile(Relaunch64View.java:826)

Some tooltips are empty some are ok in the menu. It would be good if the parameter field would have a tooltip. I didn't knew what it was until you mentioned it.
2014-04-24 18:25
soci

Registered: Sep 2003
Posts: 480
Quoting Testicle
What are other common and often used cross assemblers? Currently, there'S specific support for KickAssembler and ACME. Relaunch64 may work with other cross assembler as well, but there are probably highlighting issue etc. So I would like to implement support for further cross assemblers...

Any suggestions which could be added?


Here's a (maybe incomplete) list:

http://en.wikipedia.org/wiki/Comparison_of_assemblers#6502_asse..

Popularity varies across platforms.
2014-04-25 17:08
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Beta 11 is out:
http://sourceforge.net/projects/relaunch64/files/Beta-Releases/

I've made so many changes, I hope I can remember all of them ;-)
- fixed reported bugs
- fixed OS X specific issues
- using (shift-)tab-key when text is selected in-/outdents the selection
- ctrl+(shift+)tab cycles through opened tabs
- initial tab will be closed when opening a file
- added tooltips to most menu items and components
- added insert bytes from file feature
- added insert sinus curve feature
- added 64tass support

and:
- added user-script function. in the preferences, you can define user scripts, which equal those command you would type to console. script may have multi lines. you can execute the user script via menu / shortcut. select from different scripts in the upper right part of the editor (see "Compile and run from user scripts").
Placeholders for user scripts:
SOURCEFILE - the asm-file
OUTFILE - the output file (prg-file)

Example for compiling with KickAss and starting Vice on OS X:
java -jar /<path to kickass>/KickAss.jar SOURCEFILE
/Applications/Vice/x64.app OUTFILE

Cruncher support both for "general" settings and user scripts will come soon. So will cycling through errors.

According to the goto-error-line feature: What are the error-stream-outputs of the various compilers? I need to identify and extract the line-numbers of errors that's logged by the compiler-output/error-stream.

Best wishes
Daniel
2014-04-26 12:15
soci

Registered: Sep 2003
Posts: 480
New version, more testing ;)

- I can't enter tabs into the source, instead the focus is changed.
- Automatic indenting on new lines work for instructions, but it aligns to the label if there was one. I'm not sure, but some automatic formatting mode like on c64 tass/tasm would be nice where labels, instructions (and possibly comments) are formatted nicely in user defined columns.
- Empty lines have different height then lines with content, it's more visible if you change the font size to something bigger.
- The line numbers are cut off at the right side more and more as the number gets longer, while there's still plenty of space on the left. Also more visible on bigger font sizes.
- The tab size is independent of font size (in pixels). Normally it's n*(width of monospace font), where n is configurable. The current behaviour is probably ok for variable width fonts.
- I use "java -Dawt.useSystemAAFontSettings=on" to get nice antialiased text. Is it possible to add System.setProperty("awt.useSystemAAFontSettings","on"); somewhere at startup to have this automatic?
- Thanks for supporting 64tass! The -T option is not recommended, that's only for die-hard c64 tass/tasm users who agree that 2+2*3 is 12 ;) The -W option has been removed sometime ago, the start address is always a word unless otherwise requested.
- "cld", "clv" is missing from instructions highlighting. What is "cls"?
- Alternate instruction sets highlighting would be nice for illegal opcodes, 65c02, 65816, etc.
- Compiler log could be erased automatically after each compilation. Only the last one is interesting usually.
- Opening a file using the dialog and compiling it works, but if I open from the command line and want to compile it then I get:
Caused by: java.lang.NullPointerException
at de.relaunch64.popelganda.Relaunch64View.compileFile(Relaunch64View.java:1301)
at de.relaunch64.popelganda.Relaunch64View.runFile(Relaunch64View.java:1175)
- I think you forgot to add "help_userscripts.html" to the resources. The help button does not work because of this.
- VICE does not start, instead I get "Couldn't get a file descriptor referring to the console". Not even from user script. If I use it in place of a compiler, then it works, probably because then it can log to somewhere.

Error message format for Kick assembler (guess):
Error: <text> <linefeed>
at line <line>, column <column> in <filename>

ACME:
fprintf(msg_stream, "%s - File %s, line %d (%s %s): %s\n", type, Input_now->original_filename, Input_now->line_number, Section_now->type, Section_now->title, message);

Where type is "Error", "Warning", "Serious error".

Error message format for 64tass is documented here:
http://tass64.sourceforge.net/#messages

Watch out for handling of tabs and UTF-8 sequences when implementing jumps to columns.
2014-04-26 14:51
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Thanks again for your comprehensive and fast feedback!
There were two "bugs" with user scripts, which hopefully have been fixed now. Furthermore, I made the layout of split panes in the main window customizable, thus you can place logs and compile&run elements below the source window, place compile&run beside logs and so on...

Quoting soci
- I can't enter tabs into the source, instead the focus is changed.

Fixed, this bug came when I changed Ctrl+Tab behavior... :-/

Quoting soci
- The line numbers are cut off at the right side more and more as the number gets longer, while there's still plenty of space on the left. Also more visible on bigger font sizes.

Hm, this behavior is different on my machines where it works as intended. I'll keep that in mind and try to figure out what this could be.

Quoting soci
- The tab size is independent of font size (in pixels). Normally it's n*(width of monospace font), where n is configurable. The current behaviour is probably ok for variable width fonts.

I plan a preference tab for various smaller settings, including whether tab-key should insert tabs or a certain amount of spaces.

Quoting soci
- I use "java -Dawt.useSystemAAFontSettings=on" to get nice antialiased text. Is it possible to add System.setProperty("awt.useSystemAAFontSettings","on"); somewhere at startup to have this automatic?

Done.

Quoting soci
- Thanks for supporting 64tass! The -T option is not recommended, that's only for die-hard c64 tass/tasm users who agree that 2+2*3 is 12 ;) The -W option has been removed sometime ago, the start address is always a word unless otherwise requested.

I changed the default parameter according to your suggestions.

Quoting soci
- "cld", "clv" is missing from instructions highlighting. What is "cls"?

Done, included cld and clv. I guess cls was just a typo.

Quoting soci
- Alternate instruction sets highlighting would be nice for illegal opcodes, 65c02, 65816, etc.

Yes, this may follow. But I guess not for the first final release, which focuses on core functions and 6502 support.

Quoting soci
- Compiler log could be erased automatically after each compilation. Only the last one is interesting usually.

Done

Quoting soci
- Opening a file using the dialog and compiling it works, but if I open from the command line and want to compile it then I get:
Caused by: java.lang.NullPointerException
at de.relaunch64.popelganda.Relaunch64View.compileFile(Relaunch64View.java:1301)
at de.relaunch64.popelganda.Relaunch64View.runFile(Relaunch64View.java:1175)

I'll look at it, currently I'm not sure where the bug is.

Quoting soci
- I think you forgot to add "help_userscripts.html" to the resources. The help button does not work because of this.

No, I just continued development short after releasing beta 11, that's why the HTML was on Github, but not in the binaries. ;-) But the help file and button functionality is included now.

Quoting soci
- VICE does not start, instead I get Couldn't get a file descriptor referring to the console. Not even from user script. If I use it in place of a compiler, then it works, probably because then it can log to somewhere.

Strange. Did you specify a file path to Vice?

Quoting soci
Error message format for Kick assembler (guess):
Error: <text> <linefeed>
at line <line>, column <column> in <filename>

ACME:
fprintf(msg_stream, "%s - File %s, line %d (%s %s): %sn", type, Input_now->original_filename, Input_now->line_number, Section_now->type, Section_now->title, message);

Where type is "Error", "Warning", "Serious error".

Error message format for 64tass is documented here:
http://tass64.sourceforge.net/#messages

Ok, I'll give it a try.

Daniel
2014-04-26 15:40
soci

Registered: Sep 2003
Posts: 480
Quoting Testicle
Quoting soci
- The line numbers are cut off at the right side more and more as the number gets longer, while there's still plenty of space on the left. Also more visible on bigger font sizes.

Hm, this behavior is different on my machines where it works as intended. I'll keep that in mind and try to figure out what this could be.


This picture shows both the empty line height and the line number problem:

http://singularcrew.hu/temp/line_numbers.png

I guess it's a wrong estimation of font/text width. The easiest would be for a monospace font to keep the text left adjusted, and add enough spaces in front to make the numbers right adjusted.

Quoting Testicle

Quoting soci
- VICE does not start, instead I get Couldn't get a file descriptor referring to the console. Not even from user script. If I use it in place of a compiler, then it works, probably because then it can log to somewhere.

Strange. Did you specify a file path to Vice?


Sure, I've used the same path in the "emulator" field as I used in the "compiler" filed. It only executed as a "compiler", but not as emulator. I think it would help if the output of the emulator would be logged too.
2014-04-26 16:19
Testicle
Account closed

Registered: Sep 2002
Posts: 131
I think I found a solution for
---
- Opening a file using the dialog and compiling it works, but if I open from the command line and want to compile it then I get:
Caused by: java.lang.NullPointerException
at de.relaunch64.popelganda.Relaunch64View.compileFile(Relaunch64View.java:1301)
at de.relaunch64.popelganda.Relaunch64View.runFile(Relaunch64View.java:1175)
---

According to executing Vice: Did it work in previous beta-versions? Than I probably know how to fix this.
2014-04-26 16:22
soci

Registered: Sep 2003
Posts: 480
I've tried the sinus generator. It's not giving the full range and is asymmetric ;( Also I don't see the point of generating a full text byte table as all 3 assemblers are capable to generate one in just one line:

Kick assembler:
.fill num, round(min+[max-min]*[1+sin(i*toRadians(360)/num)]/2)

ACME (0.92 and later):
!for i, num {!byte 0.5+min+(max-min)*(1+sin((i-1)*arcsin(1)*4/num))/2}

64tass:
.byte round(min+(max-min)*(1+sin(range(num)*rad(360)/num))/2)

Instead of the full table I'd suggest to generate similar oneliners with min/max/num filled in.
2014-04-26 16:36
soci

Registered: Sep 2003
Posts: 480
Quoting Testicle
I think I found a solution for
---
- Opening a file using the dialog and compiling it works, but if I open from the command line and want to compile it then I get:
Caused by: java.lang.NullPointerException
at de.relaunch64.popelganda.Relaunch64View.compileFile(Relaunch64View.java:1301)
at de.relaunch64.popelganda.Relaunch64View.runFile(Relaunch64View.java:1175)
---


Sounds good.

Quoting Testicle

According to executing Vice: Did it work in previous beta-versions? Than I probably know how to fix this.


No, not at all ;( At least in the latest version the compiling worked and VICE could be executed as a "fake" compiler. Because it was complaining about "no console" I think it would work if the same logging would be done for VICE as for the compiler.
2014-04-26 17:25
Testicle
Account closed

Registered: Sep 2002
Posts: 131
There should be both error and standard output stream logging for both compiling (assembler) and running (emulator). I guess it has to do with the ProcessBuilder, i.e. the process itself...
2014-04-26 17:51
soci

Registered: Sep 2003
Posts: 480
I straced this:

execve("/usr/bin/java", ["java", "-jar", "Relaunch64.jar"], [/* 37 vars */]) = 0
[pid 5196] execve("/usr/local/bin/64tass", ["/usr/local/bin/64tass", "-C", "-a", "-i", "/tmp/a.asm", "-o", "/tmp/a.prg"], [/* 37 vars */] <unfinished ...>
[pid 5198] execve("/usr/local/bin/open", ["open", "/usr/local/bin/x64", "/tmp/a.prg"], [/* 37 vars */]) = -1 ENOENT (No such file or directory)
[pid 5198] execve("/usr/bin/open", ["open", "/usr/local/bin/x64", "/tmp/a.prg"], [/* 37 vars */]) = -1 ENOENT (No such file or directory)
[pid 5198] execve("/bin/open", ["open", "/usr/local/bin/x64", "/tmp/a.prg"], [/* 37 vars */] <unfinished ...>

For some reason it tries to use "/bin/open". That's only working on a console, and that's why I get the "Couldn't get a file descriptor referring to the console" message.

The assembler execution is done directly without using "/bin/open". So there must be some difference between the two invocations.
2014-04-26 17:58
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Yes, I already removed the "open" from the process call. I originally included it, because on OS X you get an access denied error when running Vice without "open". So I thought using "open" would work for Unix in general. But Mac Users can use user scripts if Vice does not start.

On Linux, I now get following when I run this user script (note this only works for beta 12, not released yet).

My script:
java -jar /home/daniel/Schreibtisch/KickAss/KickAss.jar SOURCEFILE
x64 OUTFILE


The log from Vice:
getting symbol guess_format failed!
*** VICE Version 2.3 ***
OS compiled for: Linux
GUI compiled for: GTK+
CPU compiled for: 80386
Compiler used: GCC-4.7.1
Current OS: not yet implemented
Current CPU: Intel Pentium Pro/II/III/Celeron/Core/Core 2/Atom

Welcome to x64, the free portable C64 Emulator.

Current VICE team members:
D. Lem, A. Matthies, M. Pottendorfer, S. Trikaliotis, M. van den Heuvel,
C. Vogelgsang, F. Gennari, D. Kahlin, A. Lankila, Groepaz, I. Korb,
E. Smith, O. Seibert.

This is free software with ABSOLUTELY NO WARRANTY.
See the "About VICE" command for more info.

XRandR: XRandR reports current display: 1440x900@60
C64MEM: Error - Couldn't load kernal ROM `kernal'.
Error - Machine initialization failed.

Exiting...


hm... where is vice located? I can't find it after installing it from apt-get. :-/ I would like to see whether it works when I run and compile from the general settings.
2014-04-26 18:02
soci

Registered: Sep 2003
Posts: 480
Use the "which" command to print where VICE is:

$ which x64
/usr/local/bin/x64

Don't forget to copy the ROMs to "/usr/lib/vice/*/". These are usually left out due to licensing or redistribution issues.
2014-04-26 18:27
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Thanks! The missing ROMs might be the reason for the error message... I guess I finish the "goto error" from compiler log this weekend and release beta 12 then... There won't be much beta releases from now on I think, feature list for first final release is almost implemented.
2014-04-26 18:28
soci

Registered: Sep 2003
Posts: 480
Quoting Testicle
Yes, I already removed the "open" from the process call. I originally included it, because on OS X you get an access denied error when running Vice without "open". So I thought using "open" would work for Unix in general. But Mac Users can use user scripts if Vice does not start.


You could try "/bin/sh","-c",... instead of "open",....
2014-04-26 20:05
chatGPZ

Registered: Dec 2001
Posts: 11386
Quote:
CPU compiled for: 80386

wat
2014-04-27 05:06
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Quote: Quote:
CPU compiled for: 80386

wat


Not my fault, you are responsible for the log-stream of your applications. ;-)
2014-04-28 11:57
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Beta 12 released:
https://sourceforge.net/projects/relaunch64/files/Beta-Releases/

New functions, beside some bug fixes
- "jump to error line" is included (if compiling gave errors...)
- Preferences for fonts
- Preferences for tabs
- Insert basic start
- Change layout of dividers in main window (layout of logs/quick-run-options...)

Cruncher/packer can be used via user script, but are not implemented as general setting (thus the "crunch output file with"-menu does not work yet).

Best wishes
Daniel
2014-04-29 22:29
soci

Registered: Sep 2003
Posts: 480
It's getting better with every release ;) Even if I mostly just write problems here.

For now:
- fonts are bigger in font selection preview then in editor e.g. size 19 = 24?
- font change does not affect editor window until restart
- different empty line height and line numbers getting cut off is still a problem
- tab size is still independent of font size
- if I use spaces for tabs all tab positions are off by one
- the insert sinus function is still wrong. When using the defaults it'll never reach 255, is rounded down overall and is still asymmetric.
- the insert basic line function is wrong, it should use *=$801, the line link should not be a constant but depends on the length of the number and there should be 3 trailing zeros after.
- couldn't get jump to error work with acme or 64tass
- the compiler log is not with a fixed font size, this makes the caret diagnosis of kick assembler mostly useless
- if the compilation failed the emulator is still started.

Some tips for reproducing the font size problems. Set up some higher DPI than the usual 96. I use 144, that's the correct value for my screen. No, I'm not blind yet ;) Then choose some reasonable font size like 24, this gives me a 160x50 console using 12x24 pixel characters. Unfortunately Relaunch64 does not seem to scale according to the DPI and some of the interface text is really tiny.
2014-04-29 22:30
soci

Registered: Sep 2003
Posts: 480
I tried to come up with something more dynamic for the BASIC start code (after all the sinus stuff was success ;) ). But I can't get rid of the leading zero for kick/acme, unless I assume that start is always 1000-9999. Tips are welcome from more experienced users.

Kick assembler

.pc = $801
.word !+, 2014
.byte $9e, 48 + mod(start / 10000, 10), 48 + mod(start / 1000, 10), 48 + mod(start / 100, 10), 48 + mod(start / 10, 10), 48 + mod(start, 10), 0
!: .word 0

start:

ACME

*= $801
!word +, 2014
!byte $9e, 48 + start / 10000 % 10, 48 + start / 1000 % 10, 48 + start / 100 % 10, 48 + start / 10 % 10, 48 + start % 10, 0
+ !word 0

start

64tass

*= $801
.word +, 2014
.null $9e, ^start
+ .word 0

start
2014-04-30 05:12
TWW

Registered: Jul 2009
Posts: 545
Not sure what you mean but I handled BASIC stuff by using macros in Kickass;



BasicLine10:
    .word BasicLine20 .word 10
    :SYS("65424")
    .byte $00
BasicLine20:
    .word $0000                        // Done


        .macro SYS(statement) {
            .byte $9e, $20 .text statement
        }


You could move the .byte $00 into the macro if you want but I had several commands separated by a colon on the same line so I did it this way.

Made similar macros for other BASIC Commands like REM, POKE, LOAD etc.

Not sure if this is what you meant though so sorry if I¨'m off track :)
2014-04-30 05:38
soci

Registered: Sep 2003
Posts: 480
Quoting TWW

BasicLine10:
    .word BasicLine20 .word 10
    :SYS("65424")
    .byte $00
BasicLine20:
    .word $0000                        // Done


        .macro SYS(statement) {
            .byte $9e, $20 .text statement
        }


Not exactly what I was looking for. I wanted to generate the SYS decimal address dynamically depending on the "start" label's address.

This is for cases where the program entry point is not right immediately after the sys line, but somewhere later. Hardcoding a value like 2061 or 65424 is no problem and certainly works if the address is known in advance and is not moved too often.
2014-04-30 07:48
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Quote: It's getting better with every release ;) Even if I mostly just write problems here.

For now:
- fonts are bigger in font selection preview then in editor e.g. size 19 = 24?
- font change does not affect editor window until restart
- different empty line height and line numbers getting cut off is still a problem
- tab size is still independent of font size
- if I use spaces for tabs all tab positions are off by one
- the insert sinus function is still wrong. When using the defaults it'll never reach 255, is rounded down overall and is still asymmetric.
- the insert basic line function is wrong, it should use *=$801, the line link should not be a constant but depends on the length of the number and there should be 3 trailing zeros after.
- couldn't get jump to error work with acme or 64tass
- the compiler log is not with a fixed font size, this makes the caret diagnosis of kick assembler mostly useless
- if the compilation failed the emulator is still started.

Some tips for reproducing the font size problems. Set up some higher DPI than the usual 96. I use 144, that's the correct value for my screen. No, I'm not blind yet ;) Then choose some reasonable font size like 24, this gives me a 160x50 console using 12x24 pixel characters. Unfortunately Relaunch64 does not seem to scale according to the DPI and some of the interface text is really tiny.


- Restart for font-change is something I can't change at the moment, because the font is loaded before components and classes are initialized.
- General, tab/font stuff is something I have to go deeper in to find some satisfying solutions... I guess I'll keep as TODO for an update, because it's not e real "bug". ;-)
- Insert basic: I use a leading $00, so starting with $0800 is correct in such case. However, I can also directly start with the basic command and start with $0801. Makes no difference? Anyway, I changes it to $0801 and added 3 trailing zero bytes.
- Insert sinus: ok, I'll look at it. What do you mean by asymmetric? The start with $7f?
- Jump to error: it didn't work with user scripts simply because I forgot to include it in that function as well. fixed now.
- changes font in compiler log to monospaced.
- if compilation (or anything of the processes) failed, no further processes are executed now.

The Payday User Interface Experience Group (PUIEG) did some research on the GUI of Relaunch64 and I finally decided that both user scripts and predefined settings is too much. I did some major changes and completely removed the Compiler and Emulator settings and only left user scripts. The potential users of Relaunch64 would prefer customized scripts anyway, and I guess everybody knows how to setup a user script. It's more confusing and less intuitive having to "compile and run" sections in the GUI, while only one is responsible for syntax highlighting, which is at the same also the compiler setting and so on...

I added the latest Beta 13 to source forge:
https://sourceforge.net/projects/relaunch64/files/Beta-Releases/
2014-04-30 07:52
Testicle
Account closed

Registered: Sep 2002
Posts: 131
btw, is there any valid option to get the start address of the source if you want to crunch a compiled prg-file? I mean, the lowest offset of the prg is not necessarily the start of the code, but also might be a font or whatever...
2014-05-03 12:01
soci

Registered: Sep 2003
Posts: 480
Quoting Testicle
- Insert basic: I use a leading $00, so starting with $0800 is correct in such case. However, I can also directly start with the basic command and start with $0801. Makes no difference? Anyway, I changes it to $0801 and added 3 trailing zero bytes.


It makes a big difference, it'll be wrong if loaded with load"x",8 if it does not start at $801. Not everything gets compressed.

Quoting Testicle
- Insert sinus: ok, I'll look at it. What do you mean by asymmetric? The start with $7f?


I see it's partly fixed in RC1 (symmetric now). But if I select minimum 16 and maximum 240 then I'd expect to get a curve like that. Right now this results in a curve with minimum 0 and maximum 240. Also if I enter for example 88 min and 100 max with 256 values I only get 168 values instead of 256. By checking the source it's clear that the realized function is completely different from what one would expect from this dialog window.

Quoting Testicle
- Jump to error: it didn't work with user scripts simply because I forgot to include it in that function as well. fixed now.


I don't think it works, especially after checking the source. You look for lines containing the text error/warning. But then when error lines with colons are evaluated it makes sure that it contains neither error nor warning. That looks to me as an empty set of processable error lines. (except for kickass)

Quoting Testicle
The Payday User Interface Experience Group (PUIEG) did some research on the GUI of Relaunch64 and I finally decided that both user scripts and predefined settings is too much.


Yes, and probably most user scripts will only contain these 4 characters: "make" ;)

Quoting Testicle
I added the latest Beta 13 to source forge:


Had no time for it, but I'll check RC1 soon.
2014-05-03 17:25
TWW

Registered: Jul 2009
Posts: 545
Quote: Quoting TWW

BasicLine10:
    .word BasicLine20 .word 10
    :SYS("65424")
    .byte $00
BasicLine20:
    .word $0000                        // Done


        .macro SYS(statement) {
            .byte $9e, $20 .text statement
        }


Not exactly what I was looking for. I wanted to generate the SYS decimal address dynamically depending on the "start" label's address.

This is for cases where the program entry point is not right immediately after the sys line, but somewhere later. Hardcoding a value like 2061 or 65424 is no problem and certainly works if the address is known in advance and is not moved too often.


How about this one:

    .var Temp = List()

    .pc = $2000 "Code somewhere else"
    .eval Temp = Temp.add(*)
CodeStart:
    lda #$00
    sta $d020
    rts

    .pc = $0801 "BASIC Code"

BasicLine10:
    .word BasicLine20 .word 10
    :SYS(Temp.get(0))
BasicLine20:
    .word $0000


        .macro SYS(statement) {
            .byte $9e, $20
            .text statement
            .byte $00
        }
2014-05-03 18:00
soci

Registered: Sep 2003
Posts: 480
Yes, I've overlooked the obvious solution ;) It does not have to be the first thing in the file.

Kick:
.pc = $2000
start: nop

.pc = $801
.word !+, 2014
.byte $9e
.text toIntString(start)
.byte 0
!: .word 0

ACME:
*= $2000
start nop

*= $801
!word +, 2014
!byte $9e
!if (start > 9999) {!byte 48 + start / 10000}
!byte 48 + start / 1000 % 10, 48 + start / 100 % 10, 48 + start / 10 % 10, 48 + start % 10, 0
+ !word 0
2014-05-05 14:22
TWW

Registered: Jul 2009
Posts: 545
Your code gave me an idea for a cleaner syntax in rgds. to BASIC entered directly into an assembler:

Not sure if it's worth a dam though ;D


    .pc = $2000 "Start Code"
Start:
    lda #$00
    sta $d020
    rts


    .pc = $0801 "BASIC"
    :BASIC(10) :SYS(Start)
!:  :BASIC(20) :SYS(8192)
!:  .word 0



    { // Macros for BASIC

        .macro BASIC(argument) {
            .word !+, argument
        }
        .macro SYS(argument) {
            .byte $9e, $20
            .text toIntString(argument)
            .byte $00
        }
    }
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
DJ Gruby/TRiAD
Sulevi/Virtual Dreams
Guests online: 149
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Diskmag Editors
1 Magic  (9.8)
2 hedning  (9.6)
3 Jazzcat  (9.5)
4 Elwix  (9.1)
5 Remix  (9.1)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.118 sec.