mirror of
https://github.com/irmen/prog8.git
synced 2024-06-10 20:29:33 +00:00
remove hacks from floats.parse now that kernal R47 is out
This commit is contained in:
parent
ff23fb0086
commit
63a4525f06
|
@ -136,14 +136,12 @@ asmsub FREADUY (ubyte value @Y) {
|
||||||
}
|
}
|
||||||
|
|
||||||
asmsub parse(str value @AY) -> float @FAC1 {
|
asmsub parse(str value @AY) -> float @FAC1 {
|
||||||
; -- parse a string value of a number to float in FAC1
|
; -- Parse a string value of a number to float in FAC1.
|
||||||
; warning: on older <R47 kernals it uses an internal BASIC routine that is ROM version dependent,
|
; Requires kernal R47 or newer! (depends on val_1 working)
|
||||||
; ($deb6 is inside the routine for VAL at $deb3) See basic.sym from x16-rom
|
|
||||||
; TODO once ROM v47 is released, all the workarounds here can be removed. But probably keep the kernal VAL_1 existance check
|
|
||||||
%asm {{
|
%asm {{
|
||||||
ldx VAL_1
|
ldx VAL_1
|
||||||
cpx #$4c ; is there an implementation in VAL_1? (test for JMP)
|
cpx #$4c ; is there an implementation in VAL_1? (test for JMP)
|
||||||
bne + ; no, do it ourselves
|
bne _borked ; no, print error message
|
||||||
pha ; yes, count the length and call rom VAL_1.
|
pha ; yes, count the length and call rom VAL_1.
|
||||||
phy
|
phy
|
||||||
jsr prog8_lib.strlen
|
jsr prog8_lib.strlen
|
||||||
|
@ -151,15 +149,7 @@ asmsub parse(str value @AY) -> float @FAC1 {
|
||||||
ply
|
ply
|
||||||
plx
|
plx
|
||||||
jmp VAL_1
|
jmp VAL_1
|
||||||
+ sta $a9 ; 'index' variable
|
_borked
|
||||||
sty $aa
|
|
||||||
jsr prog8_lib.strlen
|
|
||||||
lda $deb6
|
|
||||||
cmp #$d0 ; sanity check for kernal routine correct
|
|
||||||
bne +
|
|
||||||
tya
|
|
||||||
jmp $deb6 ; kernal version dependent...
|
|
||||||
+ ; print error message if routine is borked in kernal, and exit program
|
|
||||||
ldy #0
|
ldy #0
|
||||||
- lda _msg,y
|
- lda _msg,y
|
||||||
beq +
|
beq +
|
||||||
|
@ -168,7 +158,7 @@ asmsub parse(str value @AY) -> float @FAC1 {
|
||||||
bne -
|
bne -
|
||||||
+ jmp sys.exit
|
+ jmp sys.exit
|
||||||
|
|
||||||
_msg .text 13,"?val kaputt",13,0
|
_msg .text 13,"?rom 47+ required for val1",13,0
|
||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,6 @@ Compiler:
|
||||||
Libraries:
|
Libraries:
|
||||||
|
|
||||||
- gfx2: add EOR mode support like in monogfx and see PAINT for inspiration. Self modifying code to keep it optimized?
|
- gfx2: add EOR mode support like in monogfx and see PAINT for inspiration. Self modifying code to keep it optimized?
|
||||||
- once kernal rom v47 is released, remove most of the workarounds in cx16 floats.parse_f() . Prototype parse routine in examples/cx16/floatparse.p8
|
|
||||||
- fix the problems in atari target, and flesh out its libraries.
|
- fix the problems in atari target, and flesh out its libraries.
|
||||||
- c128 target: make syslib more complete (missing kernal routines)?
|
- c128 target: make syslib more complete (missing kernal routines)?
|
||||||
- pet32 target: make syslib more complete (missing kernal routines)?
|
- pet32 target: make syslib more complete (missing kernal routines)?
|
||||||
|
|
Loading…
Reference in New Issue
Block a user