2021-12-21 18:08:33 +00:00
|
|
|
%import textio
|
2022-01-08 00:33:40 +00:00
|
|
|
%import floats
|
2022-01-08 12:45:00 +00:00
|
|
|
%import test_stack
|
2022-01-01 15:35:36 +00:00
|
|
|
%zeropage basicsafe
|
2021-12-15 22:43:14 +00:00
|
|
|
|
2021-10-30 13:15:11 +00:00
|
|
|
main {
|
2022-01-01 15:35:36 +00:00
|
|
|
sub start() {
|
2022-01-09 00:33:30 +00:00
|
|
|
byte bb = 0
|
|
|
|
word ww = 0
|
|
|
|
float fl = 0
|
2022-01-08 16:51:23 +00:00
|
|
|
|
2022-01-09 00:33:30 +00:00
|
|
|
if fl< 0 {
|
|
|
|
txt.print("wrong fl\n")
|
|
|
|
}
|
|
|
|
fl=-1.111
|
|
|
|
if 0>fl or fl==2 {
|
|
|
|
txt.print("good fl\n")
|
|
|
|
}
|
|
|
|
|
|
|
|
if ww< 0 {
|
|
|
|
txt.print("wrong ww\n")
|
|
|
|
}
|
|
|
|
if bb<0 {
|
|
|
|
txt.print("wrong bb\n")
|
|
|
|
}
|
|
|
|
bb = -1
|
|
|
|
ww = -1111
|
|
|
|
if 0>ww or ww==2 {
|
|
|
|
txt.print("good ww\n")
|
|
|
|
}
|
|
|
|
if 0>bb or bb==2 {
|
|
|
|
txt.print("good bb\n")
|
|
|
|
}
|
|
|
|
; float @shared f1
|
|
|
|
;
|
|
|
|
; f1 = 1.234 |> addfloat1 |> addfloat2 |> addfloat3 ; TODO fix that the value is actually returned
|
|
|
|
; floats.print_f(f1)
|
|
|
|
; txt.nl()
|
2022-01-08 12:45:00 +00:00
|
|
|
; 1.234 |> addfloat1
|
|
|
|
; |> addfloat2 |> addfloat3 |> floats.print_f
|
|
|
|
; txt.nl()
|
|
|
|
;
|
|
|
|
; 9+3 |> assemblything
|
|
|
|
; |> sin8u
|
|
|
|
; |> add_one
|
|
|
|
; |> times_two
|
|
|
|
; |> txt.print_uw
|
|
|
|
; txt.nl()
|
|
|
|
|
2022-01-09 00:33:30 +00:00
|
|
|
; test_stack.test()
|
|
|
|
; ; TODO fix that the value is actually returned (398) and that X register is preserved:
|
|
|
|
; uword @shared uw= 9+3 |> assemblything
|
|
|
|
; |> sin8u
|
|
|
|
; |> add_one
|
|
|
|
; |> times_two
|
|
|
|
; txt.print_uw(uw)
|
|
|
|
; txt.nl()
|
|
|
|
; test_stack.test()
|
2022-01-06 21:45:36 +00:00
|
|
|
}
|
2022-01-03 22:38:41 +00:00
|
|
|
|
2022-01-08 12:45:00 +00:00
|
|
|
sub addfloat1(float fl) -> float {
|
2022-01-08 00:33:40 +00:00
|
|
|
return fl+1.11
|
|
|
|
}
|
2022-01-08 12:45:00 +00:00
|
|
|
|
|
|
|
sub addfloat2(float fl) -> float {
|
|
|
|
return fl+2.22
|
|
|
|
}
|
|
|
|
|
|
|
|
sub addfloat3(float fl) -> float {
|
|
|
|
return fl+3.33
|
|
|
|
}
|
|
|
|
|
2022-01-06 21:45:36 +00:00
|
|
|
sub add_one(ubyte input) -> ubyte {
|
|
|
|
return input+1
|
2021-12-25 01:34:00 +00:00
|
|
|
}
|
|
|
|
|
2022-01-06 21:45:36 +00:00
|
|
|
sub times_two(ubyte input) -> uword {
|
|
|
|
return input*$0002
|
|
|
|
}
|
2022-01-08 00:33:40 +00:00
|
|
|
|
2022-01-08 16:41:46 +00:00
|
|
|
asmsub assemblything(ubyte input @A) clobbers(X,Y) -> ubyte @A {
|
2022-01-08 00:33:40 +00:00
|
|
|
%asm {{
|
2022-01-08 16:41:46 +00:00
|
|
|
ldx #0
|
2022-01-08 00:33:40 +00:00
|
|
|
asl a
|
|
|
|
rts
|
|
|
|
}}
|
|
|
|
}
|
2021-05-12 22:35:22 +00:00
|
|
|
}
|
2022-01-06 21:45:36 +00:00
|
|
|
|
|
|
|
|
|
|
|
;main {
|
|
|
|
; sub start() {
|
|
|
|
; %asm {{
|
|
|
|
; lda #<float5_111
|
|
|
|
; ldy #>float5_111
|
|
|
|
; jsr floats.MOVFM
|
|
|
|
; lda #<float5_122
|
|
|
|
; ldy #>float5_122
|
|
|
|
; jsr floats.FADD
|
|
|
|
; jsr floats.FOUT
|
|
|
|
; sta $7e
|
|
|
|
; sty $7f
|
|
|
|
; ldy #0
|
|
|
|
;_loop
|
|
|
|
; lda ($7e),y
|
|
|
|
; beq _done
|
|
|
|
; jsr c64.CHROUT
|
|
|
|
; iny
|
|
|
|
; bne _loop
|
|
|
|
;_done
|
|
|
|
; rts
|
|
|
|
;
|
|
|
|
;float5_111 .byte $81, $0e, $14, $7a, $e1 ; float 1.11
|
|
|
|
;float5_122 .byte $81, $1c, $28, $f5, $c2 ; float 1.22
|
|
|
|
;
|
|
|
|
; }}
|
|
|
|
; }
|
|
|
|
;
|
|
|
|
;}
|