[feature request]make basic header optional via directive
mvdhoning opened this issue · 1 comments
Suposedly the {$COMMODORE64} in combination with the {$ORG $0801} makes it so that p65pas makes an basic header.
But it feels to me actualy {$ORG $0801} does that on its own as i do not have a {$COMMODORE64} directive in my current project as far as i am ware. So what does the {$COMMODORE64} do else if not the above?
Disabling {$COMMODORE64} does not seem to be picked up from te compiler it only seems to react on on a next restart of p65 pas. Maybe the 'boolean' it refers to should be reset to false on each compile?
In stead of letting {$ORG $0801} handle it, it would be nice to have a {$BASIC} directive that places the basic header at the spot of the {$BASIC} directive. Optionaly parameters for the {$BASIC} directive could be a label or function/procedure to where the sys call should go or specifying a custom line number or comment after the sys call.
Also think of the VIC20 support this gives with that has a different ORG depending on the memory expansion installed. And i believe the C128 has basic starting at $1C01.
Hi. In the new version of the compiler it has been fixed the {$ORG } directive. It only set the start address when the compiler write the compiled code.
Directive {$COMMODORE64} has been removed. Now there are a more complete directive {$BOOTLOADER }.
With this directive you can create a predefined or custom bootloader. To create the BASIC header for Commodore 64, now you can use:
{$ORG $0801}
{$BOOTLOADER C64}
Check the documentation for more information about {$BOOTLOADER } directive. Additionally, you can check the unit "\comp_p65pas\units\Commodore128.pas" for example of how to define a custom Bootloader.