This commit is contained in:
Irmen de Jong 2021-12-14 22:40:03 +01:00
parent 1e9d249f71
commit 5df623bd2e
2 changed files with 18 additions and 1 deletions

View File

@ -438,7 +438,9 @@ io_error:
; If you don't give an address_override, the location in memory is taken from the 2-byte file header. ; If you don't give an address_override, the location in memory is taken from the 2-byte file header.
; If you specify a custom address_override, the first 2 bytes in the file are ignored ; If you specify a custom address_override, the first 2 bytes in the file are ignored
; and the rest is loaded at the given location in memory. ; and the rest is loaded at the given location in memory.
; Returns the number of bytes loaded. ; Returns the number of bytes loaded if address_override was given, otherwise the end address.
; TODO this is stupid - why not always return the number of bytes loaded and let the caller figure out the rest
;
; NOTE: when the load is larger than 64Kb and/or spans multiple RAM banks ; NOTE: when the load is larger than 64Kb and/or spans multiple RAM banks
; (which is possible on the Commander X16), the returned size is not correct, ; (which is possible on the Commander X16), the returned size is not correct,
; because it doesn't take the number of ram banks into account. ; because it doesn't take the number of ram banks into account.

View File

@ -3,6 +3,21 @@ TODO
For next compiler release (7.6) For next compiler release (7.6)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
fix compiler crash when trying to concatenate string var and string literal.
fix return value of diskio.load() (see commment) and possibly other routines?
optimization in call convention:
non-asm subroutines with just a single byte or word parameter:
pass the parameter via A or A/Y registers.
add code to set the parameter variable in the start of the subroutine itself,
rather than requiring the caller to set it there. This is not faster but saves a lot of bytes of code.
rewrite multiple choice if into when:
if X==1 or X==2 or X==3 { truepart } else { falsepart }
-> when X { 1,2,3->truepart else->falsepart }
same with assignment if the lhs is simple var or memaddr
... ...